简单的画线问题(30分)

  • 主题发起人 主题发起人 liangjinguo
  • 开始时间 开始时间
L

liangjinguo

Unregistered / Unconfirmed
GUEST, unregistred user!
谁能够教我一下怎样画一条连续的曲线,比如y=sinx,y=(a的k次方)或其它
更复杂的连续曲线,先谢了!
 
其实还是没法连续,这能有很多短的线段连接起来
 
曲线是用点连起来的,必须一个一个点画,坐标动态计算。
 
我画过 正弦曲线,不是描点,而是用的 Lineto方法,并且可以自己定义分多少份,
效果还行
 
不可能在实现真正的“连续”,实际上包括Polyline、Polypolyline等函数都是用短线连接
成的“曲线”,关键是看你取的采样点的密度了,说到底都是屏幕上的像素点操作。不然,
清华版的《计算机图形学》上还花这么大的力气讨论“如何画一根直线”干吗?
 
可是如果用lineto的话,那y的值是浮点型,怎样转化为整型,是不是需要
把y的值放大?能给我一个具体的程序吗?
 
简单的例子如下:
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;
 
就是这样的
 
多人接受答案了。
 
后退
顶部