Forum » Šola » Signed povrsina trikotnika (vektorji)
Signed povrsina trikotnika (vektorji)
Isotropic ::
zanima me, kako se dobi povrsina trikotnika v 3d prostoru s pomocjo vektorjev? mora biti pa signed, ker rabim ugotoviti, ali je trikotnik CCW ali CW.
oz. mi lahko kdo pojasno tole kodo, predvsem mi ni ravno jasno, kaj se dogaja v tisti for zanki, glede na to, da je n = 3 (tri vozlisca), j pa starta od 2 in se povecuje (sklepam, da se vsi indeksi povecajo naenkrat)
oz. mi lahko kdo pojasno tole kodo, predvsem mi ni ravno jasno, kaj se dogaja v tisti for zanki, glede na to, da je n = 3 (tri vozlisca), j pa starta od 2 in se povecuje (sklepam, da se vsi indeksi povecajo naenkrat)
// area3D_Polygon(): computes the area of a 3D planar polygon // Input: int n = the number of vertices in the polygon // Point* V = an array of n+2 vertices in a plane // with V[n]=V[0] and V[n+1]=V[1] // Point N = unit normal vector of the polygon's plane // Return: the (float) area of the polygon float area3D_Polygon( int n, Point* V, Point N ) { float area = 0; float an, ax, ay, az; // abs value of normal and its coords int coord; // coord to ignore: 1=x, 2=y, 3=z int i, j, k; // loop indices // select largest abs coordinate to ignore for projection ax = (N.x>0 ? N.x : -N.x); // abs x-coord ay = (N.y>0 ? N.y : -N.y); // abs y-coord az = (N.z>0 ? N.z : -N.z); // abs z-coord coord = 3; // ignore z-coord if (ax > ay) { if (ax > az) coord = 1; // ignore x-coord } else if (ay > az) coord = 2; // ignore y-coord // compute area of the 2D projection <strong> for (i=1, j=2, k=0; i<=n; i++, j++, k++) switch (coord) { case 1: area += (V[i].y * (V[j].z - V[k].z)); continue;</strong> case 2: area += (V[i].x * (V[j].z - V[k].z)); continue; case 3: area += (V[i].x * (V[j].y - V[k].y)); continue; }
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | tekstura [c++ opengl]Oddelek: Programiranje | 923 (708) | matej94 |
» | Linux Synaptics touchpad driverjiOddelek: Operacijski sistemi | 1117 (994) | preem |
» | python problemOddelek: Programiranje | 1474 (1214) | Isotropic |
» | [C#] IndexOutOfRange ExceptionOddelek: Programiranje | 1312 (1157) | ql000 |
» | [C#] Sesutje aplikacijeOddelek: Programiranje | 1637 (1472) | Jean-Paul |