如何将自由曲线用贝赛尔曲线逼近出来?

and_you 2004-09-14 06:31:07
鼠标自由移动的轨迹如何用贝赛尔曲线近似表达出来?
哪位大侠能给出算法,不胜感激?100分不够在加!!
...全文
105 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
and_you 2004-09-16
  • 打赏
  • 举报
回复
难道这个问题会在csdn上沉沦吗?等待中…………
and_you 2004-09-15
  • 打赏
  • 举报
回复
to: xyzxyz1111(如是我闻) and stamp80(清风扑面) 谢谢指点!我会在仔细考虑的!!
如果哪位大侠有类似代码拿来参考,小弟不胜感激!!!
stamp80 2004-09-14
  • 打赏
  • 举报
回复
有条件的话,去一下www.cnki.net中国期刊网,上面这样的论文会有的。
stamp80 2004-09-14
  • 打赏
  • 举报
回复
楼上有人已经把Bezier中经典的de casjau作图法写出来了。我觉得,这个问题关键是求自由线上的离散点到离它最近的Bezier上的离散点(也就是不同的t说对应的点)的距离和。使得距离和最小,也就达到了逼近的目的。其中有不少数学上的处理,能力有限,不多说了。
lmfweng 2004-09-14
  • 打赏
  • 举报
回复
up
xyzxyz1111 2004-09-14
  • 打赏
  • 举报
回复
1:利用win32api函数PolyBezier
2:opengl里面也应该有相应的方法
3:Bezier曲线实际上就是一个参数曲线

x(t) = axt^3 + bxt^2 + cxt + x0
y(t) = ayt^3 + byt^2 + cy^t + y0
取四个点,包括起点和终点,再取两个中间点。
t从0到1,计算常数
cx = 3 (x1 - x0)
bx = 3 (x2 - x1) - cx
ax = x3 - x0 - cx - bx

cy = 3 (y1 - y0)
by = 3 (y2 - y1) - cy
ay = y3 - y0 - cy - by
然后取t的值,每取一个值,就计算一个点,这样不就算出来了吗?
要是想计算量小一点 ,就取t的间隔大一些,然后连起来
如此而已
and_you 2004-09-14
  • 打赏
  • 举报
回复
谢谢power_zh和fuzhe,这个问题我在google找过,满眼洋文!晕倒!!
fuzhe 2004-09-14
  • 打赏
  • 举报
回复
没做过,帮你顶,其实这个问题可以google一下
朋友别哭 2004-09-14
  • 打赏
  • 举报
回复
up

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧