3d旋转点坐标计算公式

3d旋转点坐标计算公式  

绕Z轴旋转a度
x1=x*cos(a)-y*sin(a);  
y1=y*cos(a)+x*sin(a);
z1=z;
绕X轴旋转a度
x1=x;
y1=y*cos(a)-z*sin(a);
z1=z*cos(a)+y*sin(a);
绕Y轴旋转a度
x1=x*cos(a)-z*sin(a);
y1=y;
z1=z*cos(a)+x*sin(a);
------------------------------------------------------
实现效果围绕着canvas中心绕Y轴绕圆
// 根据鼠标位置计算旋转角度(速度)
        stage.addEventListener('mousemove', function (x, y) {
            angleY = (y - vpx) * .001;
        });
// 主旋转函数
        function rotateY(ball, angleY) {
            // 把角度三角函数化,以便看起来是绕圆旋转
            var cosy = Math.cos(angleY),
                    siny = Math.sin(angleY),
            // 把 z方向影响算进来
                    y1 = ball.ypos * cosy - ball.zpos * siny,
                    z1 = ball.zpos * cosy + ball.ypos * siny;
            ball.ypos = y1;
            ball.zpos = z1;
 
            // z坐标扁平化,并赋给小球影响
            var scale = focalLength / (focalLength + ball.zpos);
 
            ball.x = vpx + ball.xpos * scale;
            ball.y = vpy + ball.ypos * scale;
            ball.width = ballR*2*scale;
        }

程序员学习公众号:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值