首页 > 专栏 > 计算机图形学 > 文章详情
WebGL图形变换:旋转矩阵 发布于:2023-02-26 20:45:33   原创发表   查看:57  讨论:0
一,原始步骤T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
旋转比平移复杂一些,因为描述一个旋转本身就比描述一个平移复杂。为了描述旋转,你应该知道:T9w易塔云建站-模板下载,web开发资源,技术博客
1. 旋转轴(图形将围绕旋转轴旋转)T9w易塔云建站-模板下载,web开发资源,技术博客
2. 旋转方向(方向:顺时针或逆时针)T9w易塔云建站-模板下载,web开发资源,技术博客
3. 旋转角度(图形旋转经过的角度)T9w易塔云建站-模板下载,web开发资源,技术博客
这里这样描述:绕Z轴,逆时针旋转了 β 角度。
T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
右手旋转法则:右手握拳,大拇指伸直并使其指向旋转轴的正方向,那么右手其余几个手指就指明了旋转的方向。现在我们看下旋转的数学表达式:T9w易塔云建站-模板下载,web开发资源,技术博客
设点p(x, y, z)旋转 β 角度之后变为 p'(x', y', z') ;首先旋转是绕z轴进行的,所以z坐标不会变,直接忽略,然后,x轴和y轴的情况有一些复杂。T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
由于:T9w易塔云建站-模板下载,web开发资源,技术博客
x = r cos αT9w易塔云建站-模板下载,web开发资源,技术博客
y = r sin αT9w易塔云建站-模板下载,web开发资源,技术博客
类似的,你也可以表示点p'的坐标T9w易塔云建站-模板下载,web开发资源,技术博客
x' = r cos (α + β)T9w易塔云建站-模板下载,web开发资源,技术博客
y' = r sin (α + β)T9w易塔云建站-模板下载,web开发资源,技术博客
利用三角函数可得T9w易塔云建站-模板下载,web开发资源,技术博客
x' = r (cos α cos β - sin α sin β)T9w易塔云建站-模板下载,web开发资源,技术博客
y' = r (sin α cos β + cos α sin β)T9w易塔云建站-模板下载,web开发资源,技术博客
将等式1代入上式,得T9w易塔云建站-模板下载,web开发资源,技术博客
x' = x cos β - y sin βT9w易塔云建站-模板下载,web开发资源,技术博客
y' = y cos β + x sin βT9w易塔云建站-模板下载,web开发资源,技术博客
z' = zT9w易塔云建站-模板下载,web开发资源,技术博客
现在我们就可以把sin β 和 cos β 通过js 传递给着色器。T9w易塔云建站-模板下载,web开发资源,技术博客
着色器:T9w易塔云建站-模板下载,web开发资源,技术博客
gl_Position.x = a_Position.x * u_CosB - a_Position.y * u_SinB;T9w易塔云建站-模板下载,web开发资源,技术博客
gl_Position.y = a_Position.x * u_SinB + a_Position.y * u_CosB;T9w易塔云建站-模板下载,web开发资源,技术博客
js:T9w易塔云建站-模板下载,web开发资源,技术博客
var u_CosB = gl.getUniformLocation(gl.program, "u_CosB");T9w易塔云建站-模板下载,web开发资源,技术博客
var u_SinB = gl.getUniformLocation(gl.program, "u_SinB");T9w易塔云建站-模板下载,web开发资源,技术博客
gl.uniform1f(u_CosB );T9w易塔云建站-模板下载,web开发资源,技术博客
gl.uniform1f(u_SinB );
T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
二,旋转矩阵T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
由上一篇的平移矩阵,我们同样可以推理出,旋转矩阵,如图:T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
三,沿X轴旋转和Y轴旋转的推到过程:T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客
T9w易塔云建站-模板下载,web开发资源,技术博客

评论

  • 匿名