相关疑难解决方法(0)

如何旋转xyz点围绕xy或z轴定义的对象

我正在研究一个可视化分子的程序.分子由每个原子的多个x,y和z值表示.我希望能够做的是在每个坐标上进行一些数学计算,并使得到的分子在其中一个轴上旋转.我尝试过使用这些公式:

y' = y*cos q - z*sin q

z' = y*sin q + z*cos q

x' = x

以及Y和Z轴的对应关系.在180度的旋转中,所得分子看起来很好,但似乎是对映体(镜像).任何其他角度(360除外)使分子彼此分开.

我所希望的是所有原子都会"一起"旋转.如果重要的是我在Java工作.

谢谢您的帮助

编辑的代码

if (axis == 'X') {
        // y' = y*cos q - z*sin q
        // z' = y*sin q + z*cos q
        // x' = x
        y = y * Math.cos(radians) - z * Math.sin(radians);
        z = y * Math.sin(radians) + z * Math.cos(radians);
    }
    else if(axis == 'Y'){
        //z' = z*cos q - x*sin q
        //x' = z*sin …
Run Code Online (Sandbox Code Playgroud)

java 3d geometry rotation coordinates

5
推荐指数
0
解决办法
2898
查看次数

标签 统计

3d ×1

coordinates ×1

geometry ×1

java ×1

rotation ×1