如何移动图元文件中的图元(200分)

  • 主题发起人 主题发起人 陈晨
  • 开始时间 开始时间

陈晨

Unregistered / Unconfirmed
GUEST, unregistred user!
我想写一个矢量图的程序但是却不知道如何编辑,如下问题;1.移动现有的图元
2.鼠标选中图元
 
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
x1:=x;
y1:=y;
bdrag:=true;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if bdrag then
begin
image1.left:=image1.left+x-x1;
image1.top:=image1.top+y-y1;
end;{if}
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
bdrag:=false;
end;


try it!
 
呵呵,我正在做
 
我也正在做这样的程序,昨晚看那些资料看到头大,本来还有点灵感的,看了后都不知
脑里想的是什么了!麻烦那位高手能给点对于这个问题的较详细解释!
 
鼠标选中图元看起来简单,要做的好真难,能象autocad那样就好了.
 
估计要对各种图元封装成类作成控件,没试过。
听听
 
看一下:www.truevcl.com
 
本人到是做过一个类似的,但比较烦琐,过程如下:
1、生成图形基类和实体类,
2、将画到Canvas上的图形对象保存到一个TList类的链表中,
3、当Click时搜索链表找出对象;或用OnIdle来监视鼠标,搜索对象结点
这样做能完成目的,但在较慢的计算机上略有停顿。
 
这是一个计算机图形学(CG)的基本问题,必须将所绘图元坐标保存。再根据鼠标位置坐标
与图元的距离进行逐一比较,以确定所选图元。详细算法到CG去找。
 
附加功能 将问题提前
 
陈晨:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 
后退
顶部