matrixrotate.c

来自「Simple Cube plotting using frame buffers」· C语言 代码 · 共 31 行

C
31
字号
#include <math.h>#include "matrixRotate.h"inline void rotateX(float *out, float angle){vector float* outV = (vector float*) out;outV[0] = (vector float) { 1.0f, 0.0f, 0.0f, 0.0f };outV[1] = (vector float) { 0.0f, cosf(angle), sinf(angle), 0.0f };outV[2] = (vector float) { 0.0f, -sinf(angle), cos(angle), 0.0f };outV[3] = (vector float) { 0.0f, 0.0f, 0.0f, 1.0f };}inline void rotateY(float *out, float angle){vector float* outV = (vector float*) out;outV[0] = (vector float) { cosf(angle), 0.0f, -sinf(angle), 0.0f };outV[1] = (vector float) { 0.0f, 1.0f, 0.0f, 0.0f };outV[2] = (vector float) { sinf(angle), 0, cosf(angle), 0.0f };outV[3] = (vector float) { 0.0f, 0.0f, 0.0f, 1.0f };}inline void rotateZ(float *out, float angle){vector float* outV = (vector float*) out;outV[0] = (vector float) { cosf(angle), sinf(angle), 0.0f, 0.0f };outV[1] = (vector float) { -sinf(angle), cos(angle), 0.0f, 0.0f };outV[2] = (vector float) { 0.0f, 0.0f, 1.0f, 0.0f };outV[3] = (vector float) { 0.0f, 0.0f, 0.0f, 1.0f };}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?