LineTo(Pixel)是以象素作为单位的,是不能出现小数的(1 Inch = 97 Pixel), 零点几个象素差在视觉里根本反映不出来.一般来说画图时总是把它放大了再画出来 (没有必要一定要用2个象素之间的距离来表示数轴上一个单位的长度) 下面给出一个物理象素和英寸的转换函数,希望有用 function InchToPixel(dblInch: Double) : Integer ; begin Result := Round(dblInch * screen.PixelPerInch) ; end ;
strtofloat(format('%20.5f',[DoubleValue]))来将DoubleFloat的精度保存到
小数后5位.
(我不懂vb,也不知道LineTo(..)是干什么的 :) )
如果你坚持的话!很简单用Ctrl+鼠标左键 看看Lineto如何实现的稍微改改咯!或者继承Lineto写个自己的myLineto!Delphi的图形处理功能VB没的比!
把你的问题说清楚点呀
在程序中有这样的语句:
x=x+d*(cos(th*3.14159/180);
y=y+d*(sin(th*3.14159/180);
pDC->LineTo(x,y);
x,y是坐标点,th是旋转角度(int),d是递归深度,显然3.14159/180是一个很小的浮点数,*th可能是小于1的数,如在Delphi中用trunc()取整的话则永远是0
则x,y的值始终不变,请教高手指点!谢谢!
零点几个象素差在视觉里根本反映不出来.一般来说画图时总是把它放大了再画出来
(没有必要一定要用2个象素之间的距离来表示数轴上一个单位的长度)
下面给出一个物理象素和英寸的转换函数,希望有用
function InchToPixel(dblInch: Double) : Integer ;
begin
Result := Round(dblInch * screen.PixelPerInch) ;
end ;
谢谢,我试试。