【发布时间】:2016-05-11 08:42:24
【问题描述】:
我不知道为什么 double 的 sin() 和 cos() 假设有一定的值,当我使用 Qt 调试时它给了我错误的值
这是我的代码:
Vec3d nor2 ( 0.0 ,0.0 ,0.0);
double jphi = 0.0 ;
double phi2 = 0.0 ;
for (int i = 0; i < 800; i++)
{
double jphi = (i+1) * step_phi - phimax ;
double phi2 = phi_0 + CV_PI * jphi / 180.0 ;
// apply partial phi-rotation in (x-z) plane
nor2 = (cos(phi2), 0.0 , sin(phi2));
}
nor2 = (0.620691455366943 , 0 , 0)第一次迭代的值
当我用 matlab 做的时候,它给了我nor2 = (0.7841 , 0 , 0.6207)
【问题讨论】:
-
phi2的值是多少? -
phi2的值为0.669624292283149
-
(cos(phi2), 0.0 , sin(phi2))的值为sin(phi2)。如果你想要一个三个坐标的向量,写Vec3d(cos(phi2), 0.0 , sin(phi2)) -
@molbdnilo 你是什么意思?
-
@ner 逗号运算符计算左侧,丢弃结果,并返回右侧的值。即
1,2的值为2。添加括号没有任何作用。
标签: c++ matlab qt opencv trigonometry