Analitikus (koordináta) geometriai gyorstalpaló

Slides:



Advertisements
Hasonló előadás
Készítette: Nagy Mihály tanár Perecsen, 2006.
Advertisements

Készítette: Szinai Adrienn
Az egyenest meghatározó adatok a koordináta-rendszerben
 Árnyalási egyenlet  Saját emisszió  Adott irányú visszaverődés.
Műveletek mátrixokkal
Koordináta transzformációk
Geometriai Transzformációk
Geometriai transzformációk
Inkrementális 3D képszintézis
Geometriai modellezés
Sugárkövetés: ray-casting, ray-tracing
Geometriai modellezés
Sugárkövetés: ray-casting, ray-tracing Szirmay-Kalos László.
3D képszintézis fizikai alapmodellje
Maple Vs. Sage Vs. Geogebra
A vetítések geometriája
VEKTORMŰVELETEK Készítette: Sike László Kattintásra tovább.
Transzformációk kucg.korea.ac.kr.
A számítógépi grafika matematikai háttere
Fejezetek a matematikából
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
A folyamatok térben és időben zajlanak: a fizika törvényei
3. Vetületi ábrázolások számítási eljárásai
Web-grafika II (SVG) 2. gyakorlat Kereszty Gábor.
PTE PMMK Matematika Tanszék dr. Klincsik Mihály Matematika III. előadások MINB083, MILB083 Gépész és Villamosmérnök szak BSc képzés 2007/2008. őszi félév.
Lineáris függvények.
Számítógépes geometria
Halmazok Összefoglalás.
További vektor, mátrix algoritmusok
Lineáris algebra.
Koordináta-geometria
2. Koordináta-rendszerek és transzformációk
2. Koordináta-rendszerek és transzformációk
Készítette: Kreka Bálint
16. Modul Egybevágóságok.
1. feladat Az ábrán egy épülő ház tetőszerkezetét látjuk. A „mester” szerint ez akkor lesz a legstabilabb, ha a „ferde” CD nyeregtetőt annak F felezőpontjában,
Kerttechnikai és műszaki tanszék Előadó: dr. Tegze Judit Elérhetőség:
AAO Csink László november.
Vektorok különbsége e-x = [ex-xx ey-xy ez-xz] e e-x x szempozíció
Sugárkövetés: ray-casting, ray-tracing
Analitikus geometria gyorstalpaló
Inkrementális 3D képszintézis Szirmay-Kalos László.
3D képszintézis fizikai alapmodellje Szirmay-Kalos László Science is either physics or stamp collecting. Rutherford.
Transzformációk Szirmay-Kalos László. Transzformációk (x,y) (x’,y’) = T(x,y) l Tönkre tehetik az egyenletet l Korlátozzuk a transformációkat és az alakzatokat.
3. Vetületi ábrázolások számítási eljárásai
2.2. Az egyenes és a sík egyenlete
2. Koordináta-rendszerek és transzformációk
Lineáris algebra.
2. hét: Síkbeli erőrendszerek eredője Készítette: Pomezanski Vanda
1 Vektorok, mátrixok.

Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
A matematika műveltségi terület a NAT-ban
Algebrai struktúrák: csoport, gyűrű, test. RSA Cryptosystem/ Titkosítási rendszer Rivest, Shamir, Adelman (1978) RSA a neten leggyakrabban használt.
előadások, konzultációk
Geometriai transzformációk
2. előadás.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
Geometriai feladatok programozása Geometriai programozás Szlávi Péter ELTE IK Média- és Oktatásinformatika Tanszék 2010.
Bevezetés a számítógépi grafikába
Perspektív projekció és kamera paraméterek. Szükséges transzformációk Világkoordináta rendszer (3D) Kamera koordinátarendszer (3D) Képsík koordináták.
Bevezetés a számítógépi grafikába 1.Bevezetés: A Számítógépi grafika tárgya 2.Képek kódolása 3.A geometrikus grafika alapjai 4.Koordináta-rendszerek és.
Készítette: Horváth Zoltán
Lineáris egyenletrendszerek megoldása
Szécsi László 3D Grafikus Rendszerek 7. előadás
Bevezetés Tematika Számonkérés Irodalom
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Csoport, félcsoport, test
Vektorok © Vidra Gábor,
Feladat Készítsünk programot, amely ciklikusan egy egyenest forgat 8 fokonként, mialatt 3 db vektort mozgat és forgat 5, 6 ill 7 fokonként, és kijelzi.
Előadás másolata:

Analitikus (koordináta) geometriai gyorstalpaló Szirmay-Kalos László

Mindent számmal axiómák pont számok sík műveletek megfeleltetés egyenes egyenlet illeszkedik metszi függvény geometria algebra

Pontok, alakzatok megadása Mindent számmal! Koordináta rendszer Koordináták megadása Koordináta rendszerek Descartes Polár Homogén

Koordináta rendszerek Yh 1 y 1 r f w Xh x Descartes Polár Baricentrikus Homogén

Pontfüggvények: Mozgatás Vektor = eltolás: v Iránya és hossza (|v|) van Helyvektor De vektor ≠ pont !!! Vektorműveletek v = v1 + v2 (kommutatív, asszoc) v1 = v - v2 (összeadásnak van inverze) v1 = av (összeadásra disztributív) helyvektor origó v1 v2 v av

Skaláris szorzás Definíció Jelentés Tulajdonságok v1 v2 v1v2 = |v1||v2|cos Jelentés Egyik vektor vetülete a másikra x másik hossza Tulajdonságok Kommutatív v1v2 = v2v1 Összeadással disztributív v3(v2+v1) = v3v2 + v3v1 vv = |v|2 v2  |v1|cos v2 v1  v3 |v1|cos

Vektoriális szorzás Definíció Jelentés Tulajdonságok v1  v2 v2 |v1  v2| = |v1||v2|sin Merőleges, jobbkéz szabály Jelentés Paralelogramma területe, síkjára merőleges (Egyik vektor vetülete a másikra merőleges síkra + 90 fokos forgatás) x másik hossza Tulajdonságok Alternáló v1  v2 = - v2  v1 Összeadással disztributív v3  (v2+v1) = v3  v2 + v3  v1 vv = |v|2 v1  |v1|cos v2 v1  |v1|sin 90 fok v1v2

Descartes koordinátarendszer v = xi + yj Egyértelmű (x = vi, y = vj) Műveletek koordinátákban Összeadás: v1 + v2 = (x1+x2)i + (y1+y2)j Skaláris szorzás: v1  v2 = (x1i + y1 j)  (x2i + y2 j) = (x1 x2 + y1y2) Vektoriális szorzás: v1  v2 = (x1i + y1 j + z1k)  (x2i + y2 j + z2k) = (y1z2 – y2z1) i + (x2z1 – x1z2) j + (x1y2 – y1x2)k Abszolút érték: |v| =  vv =  x2 + y2 + z2 y j j x i i origó i j k x1 y1 z1 x2 y2 z2

Vektor és Pont nem ugyanaz! 2D: vektor (x, y) Pont (x, y) 3D: vektor (x, y, z) Pont (x, y, z) Műveletek: Vektor + Vektor = Vektor Pont + Vektor = Pont (eltolás) Vektor – Vektor = Vektor Pont – Pont = Vektor Vektor  Vektor = Vektor Vektor  Vektor = Skalár Vektor * Skalár = Vektor

Vektor és Pont tényleg nem ugyanaz! 2D: vektor (x, y, 0) Pont (x, y, 1) 3D: vektor (x, y, z, 0) Pont (x, y, z, 1) Műveletek: Vektor + Vektor = Vektor Pont + Vektor = Pont (eltolás) Vektor – Vektor = Vektor Pont – Pont = Vektor Vektor  Vektor = Skalár Vektor * Skalár = Vektor

Vektor osztály struct Vector { float x, y, z, w; Vector(float x0, float y0, float z0, float w0 = 0) { x = x0; y = y0; z = z0; w = w0; } Vector operator*(float a) { return Vector(x * a, y * a, z * a, w * a); Vector operator+(Vector& v) { return Vector(x + v.x, y + v.y, z + v.z, w + v.w); Vector operator-(Vector& v) { return Vector(x - v.x, y - v.y, z - v.z, w - v.w); float operator*(Vector& v) { return (x * v.x + y * v.y + z * v.z); Vector operator%(Vector& v) { return Vector(y*v.z-z*v.y, z*v.x - x*v.z, x*v.y-y*v.x); float Length() { return sqrt(x * x + y * y + z * z); } };

SSE (3DNow!) struct Vector { float x, y, z, w; public: //-------------------------------------------- class CVector { float x, y, z, w; public: CVector( ) { x = y = z = w = 0.0; } CVector( float x0, float y0, float z0, float w0 = 1.0 ) { x = x0; y = y0; z = z0; w = w0; } float operator*( const Vector& v ) { return (x * v.x + y * v.y + z * v.z); } CVector operator+( const CVector& v ) { __declspec(align(16)) CVector result; #ifdef SIMD __asm { mov esi, this mov edi, v movups xmm0, [esi] movups xmm1, [edi] addps xmm0, xmm1 movaps result, xmm0 } #else result.x = x + v.x; result.y = y + v.y; result.z = z + v.z; result.w = w + v.w; #endif return result; CVector operator*( float f ) { Vector result( x * f, y * f, z * f ); void operator+=( const CVector& v ) { movups [esi], xmm0 x += v.x; y += v.y; z += v.z; void operator*=( float f ) { x *= f; y *= f; z *= f; } CVector operator-( const CVector& v ) { Vector result; subps xmm0, xmm1 result.x = x - v.x; result.y = y - v.y; result.z = z - v.z; CVector operator/( float f ) { Vector result( x/f, y/f, z/f ); CVector operator%( const CVector& v ){ movaps xmm2, xmm0 movaps xmm3, xmm1 shufps xmm0, xmm0, 0xc9 shufps xmm1, xmm1, 0xd2 mulps xmm0, xmm1 shufps xmm2, xmm2, 0xd2 shufps xmm3, xmm3, 0xc9 mulps xmm2, xmm3 subps xmm0, xmm2 result.x = y * v.z - z * v.y; result.y = z * v.x - x * v.z; result.z = x * v.y - y * v.x; float Length( ) { return (float)sqrt( x * x + y * y + z * z ); } void Normalize( ) { float l = Length( ); if ( l < 0.000001f) { x = 1; y = 0; z = 0; } else { x /= l; y /= l; z /= l; } CVector UnitVector( ) { Vector r = * this; r.Normalize(); return r; float * GetArray() { return &x; } float& X() { return x; } float& Y() { return y; } float& Z() { return z; } friend class Matrix; }; SSE (3DNow!) struct Vector { float x, y, z, w; public: Vector operator+( Vector& v ) { __declspec(align(16)) Vector res; __asm { mov esi, this mov edi, v movups xmm0, [esi] movups xmm1, [edi] addps xmm0, xmm1 movaps res, xmm0 } return res; };

2D egyenes n(r – r0) = 0 nx (x – x0) + ny (y – y0) = 0 n normálvektor v irányvektor n(r – r0) = 0 nx (x – x0) + ny (y – y0) = 0 ax + by + c = 0 (x, y, 1)  (a, b, c) = 0 y r0 r x r = r0 + v t, t  [-∞,∞] x = x0 + vx t y = y0 + vy t

Sík n(r – r0) = 0 nx (x – x0) + ny (y – y0) + nz (z – z0) = 0 n normálvektor z r0 r y x n(r – r0) = 0 nx (x – x0) + ny (y – y0) + nz (z – z0) = 0 ax + by + cz + d = 0 (x, y, z, 1)  (a, b, c, d) = 0