首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

已经知道CPoint 的3个点的CArray数组,如何插入平均坐标点

2013-04-21 
已经知道CPoint的3个点的CArray数组,怎么插入平均坐标点本帖最后由 nabasasun 于 2013-04-09 14:35:37 编

已经知道CPoint 的3个点的CArray数组,怎么插入平均坐标点
本帖最后由 nabasasun 于 2013-04-09 14:35:37 编辑 CArray<CPoint,CPoint> pt



point1={50,50}
point2={250,200}
point3={465,410}

pt.Add(point1)
pt.Add(point2)
pt.Add(point3)

然后怎么在1和2之间插入平均点,然后再在2和3之间插入平均点。
从3个点增加到5个,7个,9个,13个......
[解决办法]
你问题不是很清楚,但是我感觉你的意思是要求两个坐标的中心点,然后一直求相邻两个做坐标的中心点。
如果是的话,我觉得用递归就可以实现(伪代码):
test(x,y)
{
int a;
x,y 的平均点(a);
test(x,a);
}
[解决办法]
avg0=0
avg1=d1
avg2=(avg1+d2)/2
avg3=(avg2*2+d3)/3
avg4=(avg3*3+d4)/4
...
avgn=(avgn-1*(n-1)+dn)/n

[解决办法]
3楼给出了根据第n-1个平均值和第n个数据计算第n个平均值的方法。
[解决办法]

引用:
引用:3楼给出了根据第n-1个平均值和第n个数据计算第n个平均值的方法。
写成循环比较好,这应该怎么写

循环就是只能递归了。除非你用高级算法那就是微积分方面的了。爱莫能助
[解决办法]
好像应该用拉格朗日三点插值
楼主的插值方法只能得到两条线段,3楼给出的是三个点的几何中心点,跟楼主需求相去甚远

如果用拉格朗日插值法,只要输入(p2-p1)的1/2,1/4,3/4,等等,就可以直接得到插值点坐标,for循环足以
[解决办法]
引用:
引用:好像应该用拉格朗日三点插值
楼主的插值方法只能得到两条线段,3楼给出的是三个点的几何中心点,跟楼主需求相去甚远

如果用拉格朗日插值法,只要输入(p2-p1)的1/2,1/4,3/4,等等,就可以直接得到插值点坐标,for循环足以
我给出3点,并不表示一个鼠标画过去就只有3个点


没啥区别,你给出50个点,每相邻三个点做拉格朗日插值,循环毫无压力

热点排行