我应该在旋转矩阵中保留较小的值吗?

发布于 2024-11-30 11:31:08 字数 1432 浏览 0 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一笔一画续写前缘 2024-12-07 11:31:08

保留它,仅仅因为您可以验证计算出的 90 度矩阵与理想结果稍有不同,并不能证明修复此单一情况的函数是合理的。

如果您为此添加修复程序,您也可以为所有其他可能的值添加修复程序......

Leave it, just because you can verify that the matrix computed for 90 degrees is different ever so slightly from the ideal result doesn't justify fixing the function for this single case.

If you add a fix for this you might as well add fixes for all other possible values as well...

瑕疵 2024-12-07 11:31:08

简短的回答是,保持原样。

在您的情况下,您正在使用浮点数学生成通用旋转矩阵,这并不精确:请注意,即使您的角度(以弧度为单位)尽可能接近 pi/2,它也不会精确为 90 度。

如果您的目标是在打印数字供人类使用之前清理内容,那么您应该修复输出。在工作矩阵中将小值设置为零几乎肯定是错误的,并且会在您最意想不到的时候回来咬您......

The short answer is, leave it as is.

In your case, you are generating a general rotation matrix using floating point math, which is not exact: note that, even if your angle (in radians) is as close to pi/2 as possible, it will not be precisely 90 degrees.

If your goal is to clean things up before printing out numbers for human consumption, you should fix up the output. Setting small values to zero in the working matrix is almost certain to be actively wrong, and will come back to bite you when you least expect it...

彡翼 2024-12-07 11:31:08

这完全取决于,如果这不会给您带来任何缺点(对齐平面之间的 Z-Fighting、可读性较差的代码)并且您需要平滑过渡,那么就放弃它。否则,您可能想要将旋转/缩放四舍五入到下一个度数/0.1 步长。

It all depends, if that does not causes you any drawbacks (Z-Fighting between aligned planes, less readable code) and you need smooth transitions then leave it. Otherwise you might want to make rotations/scaling round to next degree/0.1 step.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文