use*_*501 2 c++ opengl math glm-math
在数学中,如果三个矩阵,'A','B'和'C'相乘,使得第四个矩阵'D = A*B*C',则必须从右到左计算顺序.使用括号来澄清,前面的陈述完全等同于以下内容; 'D =(A*(B*C))'.
你可以看到它如何适用于表达式'{M = A*B*C*D} == {M =(A*(B*(C*(D))))}',这是另一个例子.
在C,C++中,我使用除法运行测试来检查在C和C++中完成操作的顺序.
但是,编译汇编代码可能有更好的方法:
float a = 1.0;
float b = 2.0;
float c = 2.0;
float ans = a / b / c;
printf("answer is %f\n", ans);
Run Code Online (Sandbox Code Playgroud)
这给出了输出:
answer is 0.25
Run Code Online (Sandbox Code Playgroud)
这告诉我,如果我要创建一个表示矩阵的类,那么乘法的顺序将从左到右,与所需的相反,因为具有浮点运算和除法的示例从左到右进行评估,因为这三个操作具有相同的优先权.
在OpenGL数学库GLM中,矩阵运算以正确的顺序计算,不需要括号.
operator*()如何以这种方式表现?
呃,是的,所以它实际上并不重要,因为它已被指出给我.在这种情况下,我的问题变成"是否可以改变订单"?(也许我困了?)
| 归档时间: |
|
| 查看次数: |
2315 次 |
| 最近记录: |