CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

我想在IMAGE上画一条直线,不知道怎么画,在线等待

楼主killedkiss(苦修键)2002-10-09 15:26:33 在 C++ Builder / 基础类 提问

我想画一条直线,鼠标按下时为起点,随后拖拉鼠标,直到放开鼠标左键,画出直线,直线的两端需要有与直线垂直的短线,用于给物体定位象|——————|的直线 问题点数:20、回复次数:12Top

1 楼hlmsoft(小民)回复于 2002-10-09 15:55:50 得分 0

获得image->picutre->canvas,然后就想怎么画,就怎么画吧Top

2 楼killedkiss(苦修键)回复于 2002-10-09 16:06:33 得分 0

详细点,可以吗  
  image->canvas???不可以啊???Top

3 楼zahuifan(杂烩饭)回复于 2002-10-09 16:19:11 得分 0

Image1->Canvas->MoveTo(20,100);  
  Image1->Canvas->MoveTo(120,100);  
  Top

4 楼liux330(弧线+直线)回复于 2002-10-09 16:28:17 得分 0

Image1->Canvas->MoveTo(20,100);  
  Image1->Canvas->LineTo(120,100);  
  Top

5 楼wlz_bj()回复于 2002-10-09 16:40:23 得分 5

void   __fastcall   TForm1::Image1MouseDown(TObject   *Sender,  
              TMouseButton   Button,   TShiftState   Shift,   int   X,   int   Y)  
  {  
      Image1->Canvas->MoveTo(X,Y);  
      //纪录X,Y的位置,dx,dy  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::Image1MouseUp(TObject   *Sender,   TMouseButton   Button,  
              TShiftState   Shift,   int   X,   int   Y)  
  {  
      Image1->Canvas->LineTo(X,Y);  
      //根据dx,dy,X,Y,画两条垂直线  
   
  }Top

6 楼iec(bcbtovs)回复于 2002-10-09 16:56:25 得分 0

这样的:  
  Image1->Canvas->Pen->Color=clRed;  
  Image1->Canvas->LineTo(0,0);  
  Image1->Canvas->LineTo(100,100);  
  Top

7 楼wxzcsut(小王)回复于 2002-10-09 17:22:18 得分 0

void   __fastcall   TForm1::Image1MouseDown(TObject   *Sender,  
              TMouseButton   Button,   TShiftState   Shift,   int   X,   int   Y)  
  {  
      Image1->Canvas->MoveTo(X,Y);  
  }  
   
  void   __fastcall   TForm1::Image1MouseUp(TObject   *Sender,   TMouseButton   Button,  
              TShiftState   Shift,   int   X,   int   Y)  
  {  
      Image1->Canvas->LineTo(X,Y);  
  }  
  Top

8 楼killedkiss(苦修键)回复于 2002-10-13 19:15:29 得分 0

wlz_bj()    
  dx???dy???是多少,有这个参数吗??  
  立刻给分Top

9 楼whitetiger8(键盘未敲坏,基本功未练成)回复于 2002-10-13 20:29:47 得分 0

image->picutre->canvas->Line(50,50);Top

10 楼flyinger(风往北吹)回复于 2002-10-13 20:56:29 得分 0

我长见识了\1Top

11 楼anetfish(鱼翔浅底)回复于 2002-10-13 21:34:35 得分 10

int   xDown,yDown;  
  void   __fastcall   TForm1::Image1MouseDown(TObject   *Sender,  
              TMouseButton   Button,   TShiftState   Shift,   int   X,   int   Y)  
  {  
  if(Button!=0)return;  
  xDown=X;  
  yDown=Y;  
  }  
  //-----------------------------------------------------------------  
   
  void   __fastcall   TForm1::Image1MouseUp(TObject   *Sender,   TMouseButton   Button,  
              TShiftState   Shift,   int   X,   int   Y)  
  {  
  if(Button!=0)return;  
  if(xDown==X&&yDown==Y)return;  
  Image1->Canvas->MoveTo(xDown,yDown);  
  Image1->Canvas->LineTo(X,Y);  
  }  
  //------------------------------------------------------------------  
  基本上就是这样,不过没有拖拉效果,但可以在MOUSEMOVE中画Top

12 楼phoex(后羿)回复于 2002-10-13 21:41:32 得分 5

To:killedkiss  
      dx,dy是你鼠标点击的点的坐标!  
   
  Top

相关问题

  • 在线等待!在image控件中任意画直线!如何判断鼠标坐标下有没有被画线
  • 画直线
  • 画垂直线
  • ★★★(在线等待)在applet中。怎样删除用g.drawLine()所画的直线
  • 如何画直线?
  • 求直线控件
  • 如何在Image的Canvas上画一条直线
  • 在Image上画一条长长的直线---如何画
  • 我的线条是直线
  • 只要解决绝对送分!Image->Canvas里的文字遮盖直线问题!

关键词

  • 鼠标
  • image1
  • canvas
  • 直线
  • xdown
  • ydown
  • tmousebutton
  • lineto
  • fastcalltform1
  • moveto

得分解答快速导航

  • 帖主:killedkiss
  • wlz_bj
  • anetfish
  • phoex

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo