Показать сообщение отдельно
  #2  
Старый 04.02.2008, 12:34
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Правило перемножения матриц:
C[ni, nj] = A[ni, nk] * B[nk, nj] (это размерности)
С[i, j] = sum(A[i, k] * B[k, j]) (это элементы, где k= 1..nk).
В нашем случае имеем x1[1x4] = x0[1x4] * A[4x4], где x0 - координаты до преобразования (x, y, z, 1), x1 - координаты после преобразования.
Код:
var
 x1, x0: array[1..4] of Real;
 A:      array[1..4, 1..4] of Real;
procedure TForm1.FormCreate(Sender: TObject);
var
  i, j: Integer;
begin
  for i:= 1 to 4 do
  begin
    x1[i]:= 0;
    for j:= 1 to 4 do
      x1[i]:= x1[i] + x0[j] * A[i, j];
  end;
end;
Ответить с цитированием