如何求正弦曲线和其他任意曲线的长度? 本帖最后由 elemusic 于 2013-01-07 13:27:39 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 弧微分的几何意义是用一条线段的长度来近似代表一段弧的长度。图中MT的长度即为弧MM'的微分,由此联系勾股定理可得弧微分公式 ds2=dx2+dy2 =dx2+(y'dx)2 故ds =√(1+y'2)dxsqrt(1+y'^2)是个参数,ds是用勾股定理求出来的弧长的近似值 dx是x的变化量 贝塞尔曲线曲线 偶也不记得了 http://baike.baidu.com/view/9331182.htm 弧微分的图 一看就明白啦 哦,不知道这么写对不对。var i:Number;var step:Number = Math.PI / 2;//步长var end:Number = Math.PI * 2 - 0.0000001;//周期2pifor (i = 0; i < end; i += step){ mx = i; myp = 1 * (Math.cos(1 * mx + 0)) * 1; var v:Number = Math.sqrt(1 + myp * myp) * step; ds += v;}结果ds = 7.584475591748159??然后被子曲线公式是这样的B(t)=P0*(1-t)^3 + P1*3*t*(1-t)^2+P2*3*t^2(1-t)+P3*t^3 贝塞尔曲线的长度算法:先将贝塞尔曲线拆分成N条直线,N越大,精度越高,速度越慢。分别计算每条线段的长度,累加即可。如果还要更精确一点,就需要返回该线段每端点与它的外侧相邻端点的角度,这个角度越接近180,则估算值越小,则否反之。然后当前线段长度*该估算值。这样还不如将N值调大来得简单一点。 请教WSARecv的用法? SDK 头文件 如何显示一段XML 管道有信息,但ReadFile时不能立即返回,如何解决 DeferWindowPos移动对话框中的普通控件可以,但是移不动OCX.呵呵,为什么呢? 当我遍力vector容器的时候?怎样知道已经到了末尾? 哪里有关于二叉树的完整实现的代码? 奇怪的问题 各位都学过那些语言(计算机)?掌握最好的是?现在在靠哪一种吃饭? 难道就没有人能够回答了吗?我给150分 关于vc++绘制动态曲线的问题 MFC绘制jpg图片不断消耗内存
ds2=dx2+dy2
=dx2+(y'dx)2
故ds =√(1+y'2)dxsqrt(1+y'^2)是个参数,ds是用勾股定理求出来的弧长的近似值 dx是x的变化量
var i:Number;
var step:Number = Math.PI / 2;//步长
var end:Number = Math.PI * 2 - 0.0000001;//周期2pi
for (i = 0; i < end; i += step)
{
mx = i;
myp = 1 * (Math.cos(1 * mx + 0)) * 1;
var v:Number = Math.sqrt(1 + myp * myp) * step;
ds += v;
}结果ds = 7.584475591748159??然后被子曲线公式是这样的
B(t)=P0*(1-t)^3 + P1*3*t*(1-t)^2+P2*3*t^2(1-t)+P3*t^3
先将贝塞尔曲线拆分成N条直线,N越大,精度越高,速度越慢。
分别计算每条线段的长度,累加即可。
如果还要更精确一点,就需要返回该线段每端点与它的外侧相邻端点的角度,这个角度越接近180,则估算值越小,则否反之。然后当前线段长度*该估算值。这样还不如将N值调大来得简单一点。