<legend id='9ZUsf'><style id='9ZUsf'><dir id='9ZUsf'><q id='9ZUsf'></q></dir></style></legend>

    1. <small id='9ZUsf'></small><noframes id='9ZUsf'>

    2. <tfoot id='9ZUsf'></tfoot>
      • <bdo id='9ZUsf'></bdo><ul id='9ZUsf'></ul>
      <i id='9ZUsf'><tr id='9ZUsf'><dt id='9ZUsf'><q id='9ZUsf'><span id='9ZUsf'><b id='9ZUsf'><form id='9ZUsf'><ins id='9ZUsf'></ins><ul id='9ZUsf'></ul><sub id='9ZUsf'></sub></form><legend id='9ZUsf'></legend><bdo id='9ZUsf'><pre id='9ZUsf'><center id='9ZUsf'></center></pre></bdo></b><th id='9ZUsf'></th></span></q></dt></tr></i><div id='9ZUsf'><tfoot id='9ZUsf'></tfoot><dl id='9ZUsf'><fieldset id='9ZUsf'></fieldset></dl></div>

      Java:通过指定的度数值围绕另一个旋转点

      时间:2023-09-25
        <tbody id='r7jRY'></tbody>

        1. <small id='r7jRY'></small><noframes id='r7jRY'>

          <legend id='r7jRY'><style id='r7jRY'><dir id='r7jRY'><q id='r7jRY'></q></dir></style></legend>
        2. <tfoot id='r7jRY'></tfoot>

          • <bdo id='r7jRY'></bdo><ul id='r7jRY'></ul>
            <i id='r7jRY'><tr id='r7jRY'><dt id='r7jRY'><q id='r7jRY'><span id='r7jRY'><b id='r7jRY'><form id='r7jRY'><ins id='r7jRY'></ins><ul id='r7jRY'></ul><sub id='r7jRY'></sub></form><legend id='r7jRY'></legend><bdo id='r7jRY'><pre id='r7jRY'><center id='r7jRY'></center></pre></bdo></b><th id='r7jRY'></th></span></q></dt></tr></i><div id='r7jRY'><tfoot id='r7jRY'></tfoot><dl id='r7jRY'><fieldset id='r7jRY'></fieldset></dl></div>

              • 本文介绍了Java:通过指定的度数值围绕另一个旋转点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我正在尝试将 java 中的二维点围绕另一个具有指定度数的点旋转,在这种情况下,只是围绕点 (0, 0) 旋转 90 度.

                I am trying to rotate a 2D Point in java around another with a specified degree value, in this case simply around Point (0, 0) at 90 degrees.

                方法:

                public void rotateAround(Point center, double angle) {
                    x = center.x + (Math.cos(Math.toRadians(angle)) * (x - center.x) - Math.sin(Math.toRadians(angle)) * (y - center.y));
                    y = center.y + (Math.sin(Math.toRadians(angle)) * (x - center.x) + Math.cos(Math.toRadians(angle)) * (y - center.y));
                }
                

                期望 (3, 0):X = 0,Y = -3

                Expected for (3, 0): X = 0, Y = -3

                为 (3, 0) 返回:X = 1.8369701987210297E-16,Y = 1.8369701987210297E-16

                Returned for (3, 0): X = 1.8369701987210297E-16, Y = 1.8369701987210297E-16

                期望 (0, -10):X = -10, Y = 0

                Expected for (0, -10): X = -10, Y = 0

                返回 (0, -10):X = 10.0, Y = 10.0

                Returned for (0, -10): X = 10.0, Y = 10.0

                方法本身有问题吗?我将函数从 (Rotating A Point In 2D In Lua - GPWiki) 移植到 Java.

                Is something wrong with the method itself? I ported the function from (Rotating A Point In 2D In Lua - GPWiki) to Java.

                做了一些性能测试.没想到,矢量解赢了,所以我就用这个.

                Did some performance tests. I wouldn't have thought so, but the vector solution won, so I'll use this one.

                推荐答案

                如果你可以访问java.awt,这只是

                If you have access to java.awt, this is just

                double[] pt = {x, y};
                AffineTransform.getRotateInstance(Math.toRadians(angle), center.x, center.y)
                  .transform(pt, 0, pt, 0, 1); // specifying to use this double[] to hold coords
                double newX = pt[0];
                double newY = pt[1];
                

                这篇关于Java:通过指定的度数值围绕另一个旋转点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:图像质量在 Java Graphics2D Rotate 中被破坏 下一篇:向右旋转二维矩阵

                相关文章

                  <bdo id='Vh9iy'></bdo><ul id='Vh9iy'></ul>

              • <tfoot id='Vh9iy'></tfoot>
                <i id='Vh9iy'><tr id='Vh9iy'><dt id='Vh9iy'><q id='Vh9iy'><span id='Vh9iy'><b id='Vh9iy'><form id='Vh9iy'><ins id='Vh9iy'></ins><ul id='Vh9iy'></ul><sub id='Vh9iy'></sub></form><legend id='Vh9iy'></legend><bdo id='Vh9iy'><pre id='Vh9iy'><center id='Vh9iy'></center></pre></bdo></b><th id='Vh9iy'></th></span></q></dt></tr></i><div id='Vh9iy'><tfoot id='Vh9iy'></tfoot><dl id='Vh9iy'><fieldset id='Vh9iy'></fieldset></dl></div>
              • <small id='Vh9iy'></small><noframes id='Vh9iy'>

                  <legend id='Vh9iy'><style id='Vh9iy'><dir id='Vh9iy'><q id='Vh9iy'></q></dir></style></legend>