D grafiai algoritmuso A quadtree/octtree algoritmus A floodfill algoritmus Belső vag ülső pont? Baricentrius oordinátá Körüljárási irán eldöntése Animáció
A quadtree/octtree algoritmus Legen Ω 0 R eg négzet, S 0 : {,,..., N } Ω0 eg véges ponthalmaz vezérlő ponto, N min, L ma N adotta. procedure build Ω, S, L; begin if L < Lma and S Nmin then begin...bontsu fel Ω-t az Ω, Ω, Ω, Ω4 egbevágó rész-négzetere... build Ω, S Ω, L + ; build Ω, S Ω, L + ; build Ω, S Ω, L + ; build Ω4, S Ω4, L + ; end; end;
Ezeután a QT-háló generálása: build Ω, 0, 0; 0 S Műveletigén: O N Lma. Reprezentálása: fa-gráffal eleme: cellá, éle: felbontáso. D algoritmus: octtree oca 8-felé darabolása. Reguláris QT-háló: bármel ét szomszédos cella méreténe arána legfeljebb. Minden QT-háló regularizálható pótlólagos cellafelbontásoal.
A floodfill algoritmus Belső ponto piele automatius megeresése procedure fill,: integer; begin if iels[,]<>col_border and iels[,]<>col_paint then begin iels[,]:col_paint; fill+,; fill,+; fill-,; fill,-; end; end; Más adatstrutúrában pl. QT-hálón is műödi.
Belső vag ülső pont? N N,,,, robléma: Adott eg N-szög a csúcspontjai sorozatával, és eg, pont. Döntsü el, hog, az N-szög belsejében vag ülsejében esetleg a határán van!
. megoldás: Jelölje :,,,..., N, és :,. N + :,. Számítsu i az α : + előjeles szögeet N,,..., N. Ha a α aor ülső pont. szögösszeg π, aor belső pont, ha 0,. megoldás: Húzzun -n eresztül eg tetszőleges félegenest. Ha ez páratlan soszor metszi a peremet, aor belső pont, ha páros soszor, aor ülső pont.. megoldás csa onve soszögere műödi: Ha a pont mindegi + egenesne uganazon oldalán feszi, aor belső pont, egébént ülső pont.
, :, : + + + e n Ha 0, > e n, aor a + egenes bal oldalán, ha 0, < e n, aor a jobb oldalán feszi. + n
Baricentrius oordinátá,,, A háromszög belső, pontjai és csa eze előállna j j, λ, λ >,, λ onve ombinációént: λ 0, λ + λ + λ. j, j
λ, λ, λ: az, pontna a,,,,, pontora vonatoztatott baricentrius oordinátái. Megoldva tehát a λ λ λ + λ + λ + λ + λ + λ + λ egenletrendszert, ha λ, λ, λ > 0, aor, belső pont: ha valameli λ negatív, aor ülső pont. j Az eljárás onve soszögere általánosítható.
Körüljárási irán eldöntése,,, A örüljárási irán pozitív, ha a egenes bal oldalán feszi ill. negatív, ha a jobb oldalán.
, :, : e n Ha 0, > e n, aor a örüljárási irán pozitív, ha 0, < e n, aor negatív.
Animáció A mozgás újabb és újabb fázisait nem célszerű özvetlenül a grafius memóriába írni nem folamatos mozgás illúzióját adja, hanem először eg háttérben alaítju i a épet, amit utána özvetlenül és gorsan megjelenítün. var Bitmap: TBitmap; Inicializálás: Bitmap : TBitmap.Create; Bitmap.Width : Form.ClientWidth; Bitmap.Height: Form.ClientHeight;
A háttér puffer törlése: Brush.Color:clWhite; Rectangle0,0,Bitmap.Width,Bitmap.Height; Rajzolás a háttér pufferbe: a Bitmap Canvas objetumán eresztül, pl. Bitmap.Canvas.en.Color : clblue; Bitmap.Canvas.MoveTo,; Bitmap.Canvas.LineTo,; A háttér puffer megjelenítése: Form.Canvas.Draw0,0,Bitmap;