van de drie punten die de driehoek definiëren. Kleur wordt gebruikt om de kleurdefinitie per punt te
overschrijven. Als u wel een Alfa-waarde maar geen kleur moet opgeven, gebruikt u -1 voor de kleur.
Ook {Kleur, [Alfa], driehoek_1, ..., driehoek_n} is een geldige vorm om te voorkomen
dat voor elke driehoek steeds opnieuw dezelfde kleur moet worden opgegeven.
rotation_matrix is een matrix van 2*2 tot 3*4 groot die de rotatie en translatie van het punt specificeert
met de gebruikelijke 3D- en 4D-geometrie.
{eye_x, eye_y, eye_z} definieert de oogpositie (projectie).
{3Dxmin, 3Dxmax, 3Dymin, 3Dymax, 3Dzmin, 3Dzmax} wordt gebruikt om de reeds
getransformeerde objecten bij te snijden in 3D.
Elk punt wordt geroteerd en vertaald door vermenigvuldiging van de rotation_matrix. Het punt wordt
vervolgens geprojecteerd in het weergavegebied met de oogpositie berekend door de volgende vergelijking:
x=eye_z/z*x-eye_x en y=eye_z/ z*y-eye_y.
Elke driehoek wordt bijgesneden in 3D indien hiervoor gegevens zijn opgegeven.
Als "N" is opgegeven, worden de Z-coördinaten na rotatie genormaliseerd tussen 0 en 255 om gemakkelijker
z-clipping te kunnen uitvoeren.
Als er een z-reeks is opgegeven, vindt de z-clipping per pixel plaats op basis van de z-reeks (zie onder).
Met TRIANGLE_P wordt een tekenreeks geretourneerd die alle getransformeerde punten bevat. Als u
TRIANGLE of LINE meerdere keren achter elkaar wilt aanroepen met dezelfde punten en transformatie, kunt u
dit doen door de points_definition te vervangen door deze tekenreeks en de transformatiedefinitie
weg te laten in volgende aanroepen voor TRIANGLE en LINE.
Over z-reeksen:
Met TRIANGLE_P([G]) wordt een tekenreeks geretourneerd die is aangepast voor z-clipping.
Als u z-clipping wilt gebruiken, roept u TRIANGLE_P([G]) aan voor het maken van een z-reeks
(geïnitialiseerd bij 255 voor elke pixel). Vervolgens kunt u TRIANGLE_P aanroepen met bijbehorende z-
waarden (0-255) voor elk hoekpunt van de driehoek. Met TRIANGLE_P([G]) worden dan geen pixels
getekend verder dan de pixels die al getekend zijn. De z-reeks wordt automatisch bijgewerkt.
Matrix
Sommige matrixopdrachten gebruiken als argument de naam van een matrixvariabele waarop de opdracht
wordt toegepast. Geldige namen zijn de algemene variabelen M0–M9 of een lokale variabele die een matrix
bevat. U kunt een matrix ook rechtstreeks invoeren als een argument voor de opdracht.
ADDCOL
Syntaxis: ADDCOL(matrixnaam, vector, kolomnummer)
Hiermee voegt u de waarden in vector in een nieuwe kolom in vóór kolomnummer in de opgegeven
matrix. Het aantal waarden in de vector moet gelijk zijn aan het aantal rijen in de matrix.
ADDROW
Syntaxis: ADDROW(matrixnaam, vector, rijnummer)
Hiermee voegt u de waarden in vector in een nieuwe rij in vóór rijnummer in de opgegeven matrix. Het
aantal waarden in de vector moet gelijk zijn aan het aantal kolommen in de matrix.
642 Hoofdstuk 29 Programmeren in HP PPL