Poliéder adatainak tárolása
2010-12-20T19:04:05+01:00
2010-12-23T09:59:49+01:00
2022-06-29T08:30:49+02:00
  • n meroleges pA -ra, emiatt |pA+n|=|pA-n|
    A for ciklust nem úszod meg így :D

    ray poly intersection kéne ehhez, az meg minden raytracerben benne van.
    Mutasd a teljes hozzászólást!
  • vagy így:

    Adott ABC háromszög,
    ebből n=ABxAC, p a poliéder egy belső pontja
    ha |pA+n|>|pA|, akkor n a kifelé mutató normál, egyébként -n a megfelelő normál (ahol |x|:=x vektor hossza)

    szerinted ?
    Mutasd a teljes hozzászólást!
  • Definialjuk inkabb c-ben
    !n&1
    Mutasd a teljes hozzászólást!
  • ha a 0 páros, akkor értem.
    Állítás: a 0 páros!
    Következmény: 1-el több páros egész szám van, mint páratlan egész szám
    Mutasd a teljes hozzászólást!
  • Hatha segit ez a kep:
    http://www.basic-mathematics.com/images/concave-polygon.gif

    Barmelyik szakasz, amelyik a polygont páros darabszámú pontban metszi (nem érinti, hanem metszi) annak a szakasznak a kezdô és végpontja is ugyanazon a térfélen (polyn kivul vagy belul) van.

    Ugyanezt 3d-sítve: Ha egy test polygonjanak a feluletebol arra meroleges iranyban felegyenest inditunk a vegtelenbe es az paros darabszámú polyt döf át, na akkor megtaláltuk a kifele mutató irányt.
    Mutasd a teljes hozzászólást!
  • vagy így?

    felveszünk egy pontot a poliéder belsejében P (pl az egyik testátló felezőpontját), tükrözöm az adott lap síkjára, mint tengelyre (az így kapott pont P' a poliéderen kívül lesz) kiszámoljuk a P' adott lapra eső merőleges vetületét (K), és az adott lap normál vektora: KP'

    ez így jónak tűnik, de azt hiszem csak konvex esetben

    amit írtál nem igazán értem, de remélem előbb-utóbb felgyúl a fény
    Mutasd a teljes hozzászólást!
  • Ez a zarojeles resz lesz :p -> Egy félegyenest elinditasz a poligon kozepebol a feltételezett kifele mutato normalja iranyaba, es ha az paratlan szamu poly-t metsz (onmagat nem szamitva), akkor forditasz a pontjai sorrendjén (igy kifele fog mutatni).
    Mutasd a teljes hozzászólást!
  • Adatszerkezetből megrajzolni az éleket: rendben.
    Egy "lap" normál vektorát kiszámolni: rendben.
    ----------------------------------------------
    Ami nem oké: a lapból "kifelé", azaz nem a poliéder belseje felé mutató normál vektort kiszámolni.
    :
    Adott egy konvex lap - konvex poligon - a lapot "szemből" nézve, az óramutató járásával megegyező irányú bejárással a csúcsok sorrendje ABCDEF, ekkor a lapból "kifelé" mutató normál: AF x AB
    eddig eljutottam, de:
    honnan tudom, hol a "szemből", és ha tudom, honnan nézzem, az ABF körüljárási irányát, hogyan lehet egyszerűen meghatározni? Próbálkoztam (A,B,F) vegyesszorzattal (azzal a kikötéssel, hogy az origó a poliéder belsejében van), de ezt kiszámolva sem egyértelmű egyelőre, mi a körüljárási irány "szemből" nézve: mert ha tudnám már egyszerű: ha AFB, akkor AB x AF a keresett normál, ha ABF, akkor AF x AB
    (A "kifelé" mutató normál vektorra a láthatóság kezelése miatt volna szükség.)

    Mutasd a teljes hozzászólást!
  • Az ABC 3szognek gondolom meg tudod hatarozni a normaljat. (AB x AC, x:cross product (vagy forditva, ahogy te meghatarozod))
    A polyk egymashoz igazítását pedig pl. a kov modszerrel oldhatod meg:
    - megjelolod az osszes poliedert egy 'feldolgozandó' nevu flag-al.
    10: választasz egy tetszoleges poly-t kiindulaskent, megjelolod, hogy 'feldolgozva', majd vegigmesz az összes élén. Ha talalsz más nem feldolgozott polygonban olyan élt, ami benne van a valasztott polyban és az iránya is egyezik, akkor azt a polyt megforditod. Ha ellenkezo iranyu élt találsz, akkor azt békénhagyod, de mindkét esetben megjelolod ôket, hogy 'feldolgozva', majd rekurziv modon vegrehajtod ezt az élkeresést ezekre a polykra is (-> 10: ).

    A kezdo polynak meg valassz egy olyat, ami pl. leginkabb +Z irányában van, ennek a korbejarasi iranyat ugy modositsd, hogy a szamolt normal a +Z felé mutassom. (Ez mondjuk egy gány megoldás, a tuti az lenne, ha egy félegyenest elinditasz a kezdopoligon kozepebol a normalja iranyaba, es ha az paratlan szamu poly-t metsz, akkor forditasz a pontjai sorrendjén)
    Mutasd a teljes hozzászólást!
  • Rendben, de, hogyan határozzam meg a (a poliéderből kifelé mutató) lap-normálvektort? Az kellene...
    Mutasd a teljes hozzászólást!
  • Poligonok használata? Az F vektorban a háromszöghöz tartozó 3 csúcs helyét kéne tárolni, és kész.
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Testek adatait így szeretném tárolni:

    V vektorban a csúcsok koordinátái (xi, yi, zi)
    F vektorban a lapok adatai, F elemei szintén vektorok; F-beli vektorelem első eleme rögzíti, hogy hány csúcs fogja közre a lapot; ezt követően jönnek a csúcsok az összekötés sorrendjében - mely sorrend, vagy az óramutató járásával egyező, vagy nem - a lényeg, hogy ebben a modellben nem szeretném rögzíteni a lap normál vektorát, hanem számolni szeretném a tárolt adatok alapján.

    Ez nem okozna nehézséget, de a lapok körüljárási irányát egyelőre nem tudom egyszerűen meghatározni. Arról szeretnék "társalogni", hogy kinél mi a bevált modell hasonló (test)esetekre.
    Mutasd a teljes hozzászólást!
abcd