各位,判断一个点是否在弧上,有没有什么好的算法? 各位,判断一个点是否在弧上,有没有什么好的算法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 bool bFlgEnd=false; for(iOffSet=0;!bFlgEnd;iOffSet++) { for(i=1;i<m_lLianMaCount;i++) { iTemY=(m_ipTraceX[i]-m_ipTraceX[0])*(m_MidPoint.y-m_ipTraceY[0])/(m_MidPoint.x-m_ipTraceX[0])+m_ipTraceY[0]; if((iTemY==m_ipTraceY[i]+iOffSet)&&m_ipTraceY[i]!=m_ipTraceY[0]) { bFlgEnd=true; break; } if((iTemY==m_ipTraceY[i]-iOffSet)&&m_ipTraceY[i]!=m_ipTraceY[0]) { bFlgEnd=true; break; } } }供参考 你在判断的时候没有考虑误差, 在圆弧的计算过程中,无论你采用整数,还是采用浮点数,计算都存在误差。你的相等判断值在数学公式中才成立,在代码中由于误差就会不成立。所以,你要判断两个数是否相同要采用下面的方法if(fabs(a-b) < tolerance) equal;else not equal;tolerance 是一个小量。他的大小取决于你的系统的计算精度。============================================================================提问题时要在标题中简明扼要的说明 给我发信息请附带原帖地址http://www.betajin.com/alphasun/index.htm http://alphasun.18en.com/ http://shakingtoolkit.9126.com/DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析 可是,到圆心的距离等于半径R的点不一定在某个特定的弧上啊!是不是啊?zxping(zxping) Tinyxml的一个问题 CSliderCtrl 控件怎么精确定位? 请教关于核心编程中的异常处理? 程序员调试能力和相关书籍 问一下ATL project的低级问题。。。 请问一个工程在不同的电脑上调试,它的pch文件会出现错误 千分奉送~~~有兴趣的进来看看 如何识别BMP中的直线并求出它的长度? 高程过了,高兴,放分(数量有限,欲拿从速) 那位高手可以做基于内核键盘类过滤驱动. 问高手??线程和进程的经典书籍有那些?? VC中使用SDK网络编程:执行到accept死机:( 望大虾们帮助小弟
for(iOffSet=0;!bFlgEnd;iOffSet++)
{
for(i=1;i<m_lLianMaCount;i++)
{
iTemY=(m_ipTraceX[i]-m_ipTraceX[0])*(m_MidPoint.y-m_ipTraceY[0])/(m_MidPoint.x-m_ipTraceX[0])+m_ipTraceY[0];
if((iTemY==m_ipTraceY[i]+iOffSet)&&m_ipTraceY[i]!=m_ipTraceY[0])
{
bFlgEnd=true;
break;
}
if((iTemY==m_ipTraceY[i]-iOffSet)&&m_ipTraceY[i]!=m_ipTraceY[0])
{
bFlgEnd=true;
break;
}
}
}
供参考
所以,你要判断两个数是否相同要采用下面的方法if(fabs(a-b) < tolerance)
equal;
else
not equal;tolerance 是一个小量。他的大小取决于你的系统的计算精度。
============================================================================
提问题时要在标题中简明扼要的说明 给我发信息请附带原帖地址
http://www.betajin.com/alphasun/index.htm
http://alphasun.18en.com/ http://shakingtoolkit.9126.com/
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析