我使用以下两个C++编译器:
使用内置正弦函数时,我得到不同的结果.这并不重要,但有时结果对我来说太重要了.以下是具有"硬编码"值的示例:
printf("%f\n", sin(5451939907183506432.0));
Run Code Online (Sandbox Code Playgroud)
cl.exe的结果:
0.528463
Run Code Online (Sandbox Code Playgroud)
使用g ++的结果:
0.522491
Run Code Online (Sandbox Code Playgroud)
我知道g ++的结果更准确,我可以使用额外的库来获得相同的结果,但这不是我的观点.我真的明白这里发生了什么:为什么cl.exe错了?
有趣的是,如果我在param上应用(2*pi)的模数,那么我得到的结果与g ++相同...
[编辑]仅仅因为我的例子看起来很疯狂:这是伪随机数生成器的一部分.知道正弦结果是否准确并不重要:我们只需要它给出一些结果.
我更改了快捷方式以关闭一个窗口到Ctrl+ W并关闭所有窗口到Ctrl+ Shift+ W.关闭所有窗口工作正常,但Ctrl+W选择当前光标下的单词但不关闭窗口.
当我右键单击一个标签时,它表示Ctrl+ W是关闭它的快捷方式(还有Ctrl+ S保存和Ctrl+ Shift+ W关闭全部).为什么只有关闭窗口快捷方式不起作用?
我有一个大世界,大约5,000,000 x 1,000,000单位.相机可以靠近某个物体或足够远,以便看到整个世界.
我通过unprojecting(Z来自深度缓冲区)获得世界坐标中的鼠标位置.问题是它涉及矩阵逆.当使用大数字和小数字(例如,从原点平移并缩放以查看更多世界)时,计算变得不稳定.
试图看到这个逆矩阵的准确性,我看一下行列式.理想情况下,由于转换矩阵的性质,它永远不会为零.我知道,'det'一个小值本身并不意味着它,它可能是由于矩阵中的值很小.但它也可能是数字出错的标志.
我也知道我可以通过反转每个变换并乘以它们来计算逆.它提供更准确吗?
如何判断我的矩阵是否退化,是否存在数值问题?
现在大多数人不在goto他们的代码中使用语句。好的。在 SO 中,有许多线程在goto使用,所有线程都“允许”它退出深度循环。
展示一些:
我查看了cppreference.com,其中显示:
当无法使用其他语句将控制转移到所需位置时使用。
敲响我警钟的是“否则不可能”
goto任何机构都可以举出一些无法避免的例子吗?
注意:我将此问题标记为“C++”,只是因为我对 C++ 示例更感兴趣。任何其他语言对我都有好处。
我想在两条线之间放置一个圆但是,我只想使用一条线来创建圆。所以我的方法是选择第 1 行上的点。对于第 1 行上的每个点:我想创建半径增加的圆,这些圆与线上的点 1 相切。增加半径,直到圆也与另一条线相交。之后以较小的步长减小半径,直到圆与两条线相切。继续第 1 行的下一个点。
不知何故,我无法找到一个干净清晰的代码来做到这一点。线上的点可以使用 line.arbitrary_point 来完成。如何创建一个半径为 R 的圆到点 p1 以便它以最佳方式相切?
谢谢!