AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Matrix multiplikation, help

Ein Thema von Jonas Shinaniganz · begonnen am 5. Jun 2012 · letzter Beitrag vom 7. Jun 2012
Antwort Antwort
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#1

AW: Matrix multiplikation, help

  Alt 5. Jun 2012, 20:47
Siehe Codeschnipsel von mir
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton ( 5. Jun 2012 um 20:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#2

AW: Matrix multiplikation, help

  Alt 6. Jun 2012, 21:47
Sofern nichts dagegen spricht, würde ich klassen draus machen. HAbe für meinen softwarerenderer Klassen für 4DMatritzen, 3d und 4D arrays. Entsprechende methoden inbegriffen.
Machts um einiges einfacher wenn man damit öfters hantieren muss.

MFG
Memnarch
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.203 Beiträge
 
Delphi 13 Florence
 
#3

AW: Matrix multiplikation, help

  Alt 7. Jun 2012, 06:07
Noch sinnvoller sind bei solchen Typen auch vor allem Records. Dann kann man die Operatoren auch direkt überladen und dann einfach direkt mit den entsprechenden Variablen rechnen. Das macht insbesondere komplexe Berechnungen sehr viel übersichtlicher.
Beispiel:
Delphi-Quellcode:
var
  Value1, Value2, MultResult: TMatrix;
begin
  Value1 := '((1, 2, 3), (4, 5, 4), (6, 1, 2))';
  Value2 := '(2, 3, 9)';
  MultResult := Value1 * Value2;
Mit:
Delphi-Quellcode:
  TMatrix = record
  private
    type
      TMatrixArray = array of array of Integer;
      PMatrixArray = ^TMatrixArray;
    var
      FWidth: Integer;
      FHeight: Integer;
      FData: TMatrixArray;
    function GetData: PMatrixArray;
  public
    constructor Create(const AWidth, AHeight: Integer);
    class operator implicit(const AValue: string): TMatrix;
    class operator implicit(const AValue: TMatrix): string;
    class operator Add(const AValue1, AValue2: TMatrix): TMatrix;
    class operator Multiply(const AValue1, AValue2: TMatrix): TMatrix;
    class operator Multiply(const AValue: TMatrix; const AScalar: Integer): TMatrix;
    property Data: PMatrixArray read GetData;
    property Width: Integer read FWidth;
    property Height: Integer read FHeight;
  end;

...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz