想做一个画图软件,但是坐标定位把我难住了。
坐标重新定位后,画出的图形应怎么变动位置?谢谢了。

解决方案 »

  1.   

    0、建立度量管理。
    1、为系统建立坐标系,分为相对坐标和绝对坐标。
    2、建立相对坐标到绝对坐标的转换系统。看你的软件的复杂程度,如果不是很复杂,可以使用TImage做,很简单,上面的工作,你就都不需要做了。:)
      

  2.   

    需要象Visio那样的矢量绘图控件吗? [email protected]
      

  3.   

    //屏幕 X 坐标到地图 X 坐标
    Function TNetMap.STMX(X:Integer):Double;
    Begin
         {If FShowGrid2 Then
            Result:=Round((BeginX+X/FMapZoom)/FGridSize)*FGridSize
         Else}
         Result:=BeginX+X/FMapZoom;
    End;//屏幕 Y 坐标到地图 Y 坐标
    Function TNetMap.STMY(Y:Integer):Double;
    Begin
         {If FShowGrid2 Then
            Result:=Round((BeginY+(H-Y)/FMapZoom)/FGridSize)*FGridSize
         Else}
         Result:=BeginY+(H-Y)/FMapZoom;
    End;//地图 X 坐标到屏幕 X 坐标
    Function TNetMap.MTSX(X:Double):Integer;
    Begin
         Result:=Round((X-BeginX)*FMapZoom);
         //Result:=Trunc((X-BeginX)*FMapZoom);
    End;//地图 Y 坐标到屏幕 Y 坐标
    Function TNetMap.MTSY(Y:Double):Integer;
    Begin
         Result:=Round(H-(Y-BeginY)*FMapZoom);
         //Result:=Trunc(H-(Y-BeginY)*FMapZoom);
    End;
      

  4.   

    var
      CurPoint: TPoint;
    begin
      GetCursorPos(CurPoint);   //获取屏幕指针坐标  Point := Image.ScreenToClient(CurPoint);    //转换成Image控件内的指针坐标
     
    end;