设计了段程序:
procedure TForm1.Button1Click(Sender: TObject);  begin
  WITH image1.Canvas DO
  BEGIN
  Pen.Style := pssolid;
  pen.color:=clred;
  FillRect(image1.Canvas.ClipRect);
  moveto(0,0);
  lineto(strtoint(edit1.text), strtoint(edit2.text));
  LineTo(strtoint(edit3.text), strtoint(edit4.text));
  LineTo(strtoint(edit5.text), strtoint(edit6.text));
  end;
end;可是运行的时候发现坐标的原点在左上角,而且属于坐标轴系的右下脚那快,这个怎么作才能实现坐标轴系的第一块的效果啊?
还有问下怎么才能实现自由调整坐标轴刻度大小?

解决方案 »

  1.   

    1、假设点x1,y1是相对于左下角为原点的,变换成屏幕坐标就是(X,Y)=(x1;-y1+ScreenHeight)
    2、刻度仅仅是一个数学概念,你可以自己定义刻度的规则,但最后都必须变换成实际的屏幕刻度。你的这个问题更多的是坐标平移的问题。
      

  2.   

    第一个我懂了,其实就是多做次算法
    第二个还是有点问题,坐标平移是什么?难道是(X,Y)=(X1/A,(-Y1+ScreenHeight)/A)?
      

  3.   

    顺便问下怎么才能在IMAGE里面添加刻度?