L liangjinguo Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-28 #1 谁能够教我一下怎样画一条连续的曲线,比如y=sinx,y=(a的k次方)或其它 更复杂的连续曲线,先谢了!
B BaKuBaKu Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-28 #3 曲线是用点连起来的,必须一个一个点画,坐标动态计算。
C Crab Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-28 #4 我画过 正弦曲线,不是描点,而是用的 Lineto方法,并且可以自己定义分多少份, 效果还行
吕 吕雪松 Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-28 #5 不可能在实现真正的“连续”,实际上包括Polyline、Polypolyline等函数都是用短线连接 成的“曲线”,关键是看你取的采样点的密度了,说到底都是屏幕上的像素点操作。不然, 清华版的《计算机图形学》上还花这么大的力气讨论“如何画一根直线”干吗?
不可能在实现真正的“连续”,实际上包括Polyline、Polypolyline等函数都是用短线连接 成的“曲线”,关键是看你取的采样点的密度了,说到底都是屏幕上的像素点操作。不然, 清华版的《计算机图形学》上还花这么大的力气讨论“如何画一根直线”干吗?
L liangjinguo Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-28 #6 可是如果用lineto的话,那y的值是浮点型,怎样转化为整型,是不是需要 把y的值放大?能给我一个具体的程序吗?
E Expert Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-28 #7 简单的例子如下: procedure TForm1.Button1Click(Sender: TObject); var x,y:integer; begin canvas.MoveTo(0,100); for x:=0 to 314 do begin y:=round(sin(x/100)*100); canvas.lineto(x,100-y); end; end;
简单的例子如下: procedure TForm1.Button1Click(Sender: TObject); var x,y:integer; begin canvas.MoveTo(0,100); for x:=0 to 314 do begin y:=round(sin(x/100)*100); canvas.lineto(x,100-y); end; end;