Konstruieren von 3D-Cam-Carpets mit Projektionsmatrizen
Abbilden eines senkrecht stehenden Bildes per Parallelprojektion:
Gerade pB in Projektions-Richtung v=(v1,v2,v3) trifft Bildpunkt B=(b1,b2,b3) und projeziert B auf Teppich-Ebene z=0. Allgemeine Betrachtung in homogenen Koordinaten ParallelProjectionConstructionCAS.
===>
p'(B) ===> b3 + t v3 = 0 ===> t=-b3/v3
Die Zentral-Projektion des CamCarpet Schatten-Bildes (Projektionsvektor von Kamera zu den Bildpunkten) lässt sich in homogenen Koordinaten in einer Matrix abhandeln. Details zu dem Verfahren in App Central & Parallel Projection Matrix construction.
Beispiel:
Zentral-Projektion Matrix für Projektionsebene z=0,
CAMvektor=(22,27,20), Urbildvektor (-2.5,0,5.25) in homogenen Koordinaten R4
ZP:=ZP_H(22, 27,20, 0, 0, 1,0)
Eine Überführung in R³ würde eine Funktion (CAS) darstellen ZPM(Kamera,Punkt/Vector):
ZP_M((22,27,20),(2.5,0,5.25)) = (-4.44,-9.61,0)
in neueren Versionen in CAS-Funktionen Koordinatencommand ersetzen durch x()→*(1,0,0), y()→*(0,1,0), z()→*(0,0,1)!
AlgebraView-Version
SX'=Zip((1 / (z(X)-z(K)) Z_p X), X, SX) →
Ich hab 3 Scenen hinterlegt in Punktlisten X0, X1, X2
K Position Kamera (Parallel-Projektion) - L Position Licht/Beleuchtung Punktstrahler (Zentral-Projektion)
Scene
Punktliste
Bildpunkte
ProjektionVi
Bildpunkte
ProjektionV
Bilder
T 2D
SX=X0
SX'
SX''
TBild, TBild', TBild''
L 3D
SX=X1
SX'
SX''
LBild, LBild', LBild''
Carpet
SX=X2
SX'
SX''
CarpetBild, CarpetBild',CarpetBild''
Um die eine Scene zu betrachten ist die Zuweisung SX vorzunehmen und
es ist die Darstellung der entsprechenden Punktlisten und Polygon/Polyline Bilder sichtbar/unsichtbar zu schalten!
App:
Punktliste SX wird durch Projektionsvektor v (erzeugt Matrix T) abgebildet auf SX'' - Vektor: Von Kamera K auf 1. BildpunktSX(1) + dv zur (ggf. mittigen) Ausrichtung = v Projektionsrichtung (CAS): .
SX' entsteht, wenn die Geraden (Lichtquelle) L ... SX(i) zur Projektion verwendet werden.
Punktförmige Lichtquelle erzeugt Schatten - für jeden Bild-Punkt wird eine Projektionsmatrix gebildet SXM.
Solve/Löse, Substitute/Ersetze, Append/Anfügen, Take/Teilliste,
Identity/Einheitsmatrix, Sequence/Folge, Length/Länge, Polygon/Vieleck,
Polyline/Polygonzug
Verschiedene Blickwinkel auf den Teppich und Vergleich unterschiedlicher Projektionen