如何使用canvas来作曲线,急!!!!!(100分)

  • 主题发起人 主题发起人 xpf
  • 开始时间 开始时间
Sorry,xiao.
I will send me programme to you.
 
TCanvas 对象不是有方法吗?
比如 Arc Line
 
是不是想画专业的曲线。
可以用MATLAB来画,而且在
C++builder里面可以调用MATLAB
的东西。
 
大不了就是画点了,不知你要的是什么曲线?
 
就是, 用相应的函数描点不就可以了么(其实所有的线都是这么画的).
 
你说的是不是画贝塞尔曲线。用polybezier函数。
 
画点,也行。
 
要看作什么样的曲线了. windows api函数支持圆/圆弧/bezier曲线
如果是其他曲线可以用多条直线段逼近曲线, 一般50--200段即可.
给你一个网址: http://www.efg2.com/lab/ 其中有很多图形图像处理的样例, 当然
也有2D/3D曲线的例子啦.
good luck!!!
 
to huizhang: 你说的那个站点真是太棒了!!!
 
在Delph下调用PolyBezier();
procedure TForm1.Button1Click(Sender: TObject);
var point:array[0..6] of Tpoint;
h:HDC;
begin
h:=getdc(form1.handle);
point[0].x:=25;
point[0].y:=25;
point[1].x:=35;
point[1].y:=170;
point[2].x:=130;point[2].y:=120;
point[3].x:=150;point[3].y:=150;
point[4].x:=170;point[4].y:=280;
point[5].x:=250;point[5].y:=115;
point[6].x:=250;point[6].y:=225;
polybezier(h,point,7);
end;

PolyBezier 画一系列相连的曲线,每一段包含4个point,第一点是曲线起点,
第二点,第三点指定曲线形状的控制点,第四点是曲线终点。
本例中,1为起点,4为中点,7为终点,2,3,5,6为控制点。
OR 调用canvas.polybezier();
 
很easy的,api有各种各样的画图函数,可以基本满足画一般的图形,例如圆等,但是
如果你想画很cool的图形,就需要使用一些几何函数了.
 
Thank you for your help
 
找找吧,delphi或win api介绍的书中都 有的。
 
多人接受答案了。
 
后退
顶部