Tag: 三角法

3点之间的角度?

给定点ABC,我怎么能找到角度ABC? 我正在为矢量绘图应用程序制作一个手工工具,并尽量减少它生成的点数,除非鼠标位置和最后2个点的角度大于某个阈值,否则我不会添加点。 谢谢 我有什么: int CGlEngineFunctions::GetAngleABC( POINTFLOAT a, POINTFLOAT b, POINTFLOAT c ) { POINTFLOAT ab; POINTFLOAT ac; ab.x = bx – ax; ab.y = by – ay; ac.x = bx – cx; ac.y = by – cy; float dotabac = (ab.x * ab.y + ac.x * ac.y); float lenab = sqrt(ab.x * ab.x + […]

sin,cos,tan和舍入误差

我正在用C / C ++进行一些三角计算,并且遇到了舍入错误的问题。 例如,在我的Linux系统上: #include #include int main(int argc, char *argv[]) { printf(“%e\n”, sin(M_PI)); return 0; } 该程序提供以下输出: 1.224647e-16 当正确的答案当然是0。 使用trig函数时,我可以期待多少舍入误差? 我怎样才能最好地处理这个错误? 我熟悉用于比较浮点数的最后位置单位技术,来自Bruce Dawson的比较浮点数 ,但这似乎在这里不起作用,因为0和1.22e-16相当于几个ULP。