📄 matrix.inc
字号:
{* ______ ___ ___
* /\ _ \ /\_ \ /\_ \
* \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___
* \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\
* \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \
* \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
* \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
* /\____/
* \_/__/
*
* Matrix math inline functions (generic C).
*
* By Shawn Hargreaves.
*
* See readme.txt for copyright information.
*}
{$IFDEF ALLEGRO_INTERFACE}
procedure apply_matrix(m: P_MATRIX; x, y, z: fixed; var xout, yout, zout: fixed);
{$ENDIF ALLEGRO_INTERFACE}
{$IFDEF ALLEGRO_IMPLEMENTATION}
procedure apply_matrix(m: P_MATRIX; x, y, z: fixed; var xout, yout, zout: fixed);
function CALC_ROW(n: sint32): fixed;
begin
Result := (fixmul(x, m^.v[n][0]) +
fixmul(y, m^.v[n][1]) + fixmul(z, m^.v[n][2]) + m^.t[n])
end;
begin
xout := CALC_ROW(0);
yout := CALC_ROW(1);
zout := CALC_ROW(2);
end;
{$ENDIF ALLEGRO_IMPLEMENTATION}
{$IFDEF ALLEGRO_LOADVARIABLE}
{$ENDIF ALLEGRO_LOADVARIABLE}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -