form上动态画曲线(100分)

  • 主题发起人 主题发起人 heihei
  • 开始时间 开始时间
H

heihei

Unregistered / Unconfirmed
GUEST, unregistred user!
随着坐标值输入,在form上自动将各点连成曲线,如何实现?
 
用 moveto(x1,y1);
lineto(x2,y2);

x1,y1 和x2,y2为输入坐标。

下一次输入时设x3,y3 和前两个进行比较……重画……
 
看看delphi中的例子:
.../demos/threads/thrddemo.dpr中有关画线的语句。不过用的是tpaint,
不是直接在form上划线。
 
在PaintBox上画,比直接在Form的Canvas上好。
 
you can draw line on Image also.
 
直接在Form的Cavans上画就可以了
 
Cavans.moveto&Cavans.lineto,一切搞定
 
我说的是画曲线,不是简单画直线,如何实现?
 
曲线就用分段直线近似代替可以吧?要不你只能用描点法实现了……
 
曲线也是由点组成的,坐标点足够多,画出来的就象曲线,否则是折线。
如果坐标点不多的话,可以先插值再画
 
计算方法中不是有很多插值的算法吗,简单的就用牛顿插值.
一般的书上都有c的源代码.然后描点.
 
wjiachun能否给出描点法代码?
狭圣,g622能否给出插值代码?
 
>>wjiachun能否给出描点法代码?
就是你先把坐标保存在数组中,对横坐标或纵坐标进行由小到大排序,然后
moveto(x1,y1);
lineto(x2,y2);
lineto(x3,y3);
……
lineto(xn,yn);

 
wjiachun,你的算法不太好,有可能画出错的曲线。。。。你的曲线的点只能
由坐标小的点到坐标大的点。。如果此曲线实际上先过坐标大的点再过坐标小
的点。。。
我想最简单的方法,能不能用画图表的控件搞定。。。
 
with Cavans do
moveto(x1,y1);
lineto(x2,y2);

end;
x1,y1 和x2,y2为输入坐标。
 
wjiachun说的是按从小到大的顺序,我所说的是按时间顺序输入坐标的,是随机输入的,能够随着点的输入自动生成曲线,应该如何实现?不知哪位大虾做过.
 
这是单纯的数学问题,如果你的高数不是太……的话,在几分钟内或许可以搞掂。
我做过不少这样的东东,但我认为你或许更应学习一下数学的。
 
logical是否有你做过的这方面的源代码?本人是只菜鸟,拜托拜托,再次感谢
 
我说过这只是数学问题(函数逼近与数据拟合),与是否菜鸟无关,简单一点说你只需用拉格朗日插值公式便可,当然,关于数据拟合可以简单也可以复杂,这看你的实际需要了。
 
logical:由于本人是第一次接触这方面的内容,所以想能够有个捷径,如果你有这
方面的相关的代码,是否能够mail给我参考?谢谢
 
后退
顶部