86
GÁBOR DÉNES FŐISKOLA 3D GRAFIKA ÉS ANIMÁCIÓ 180/98 OLÁH ZOLTÁN BUDAPEST

3D Grafika És Animáció

Embed Size (px)

DESCRIPTION

3d grafika jegyzet

Citation preview

Page 1: 3D Grafika És Animáció

GAacuteBOR DEacuteNES

FŐISKOLA

3D GRAFIKA EacuteS ANIMAacuteCIOacute

18098

OLAacuteH ZOLTAacuteN

BUDAPEST

1998

Tartalom

I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA5

I1 A LAacuteTOTT KEacuteP FELFOGAacuteSA5I2 A LAacuteTAacuteS BIOLOacuteGIAacuteJA KEacutePALKOTAacuteS AZ EMLEacuteKEZET SEGIacuteTSEacuteGEacuteVEL6

I21 Szemuumlnk feleacutepiacuteteacutese6I22 A laacutetaacutes alapjai8I23 A visszavert feacuteny eacuterzeacutekeleacutese8I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel8I25 Keacutepek lekeacutepzeacutese9

I3 A SZIacuteNLAacuteTAacuteS EacuteS A LAacuteTAacuteS EGYEacuteB SAJAacuteTOSSAacuteGAI9I31 Sziacutenek eacuterzeacutekeleacutese9I32 Laacutetaacutesunk időbeli felbontaacutesa10I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői11I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere11I35 Alakzatlaacutetaacutes12

II MATEMATIKAI ALAPOK13

II1 TESTEK FELSZIacuteNEacuteNEK KOumlZELIacuteTEacuteSE13II2 VEKTOROK R2-BEN EacuteS R3-BAN14

II21 Iraacutenyiacutetott szakaszok14II22 Vektorok jellemzői14II23 Vektorok oumlsszege15II24 Vektorok szorzaacutesa szaacutemmal15II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja16II26 Vektorok megadaacutesa koordinaacutetaacutekkal17II27 Egyenesek parameacuteteres egyenletei18II28 Vektorok szorzaacutesa18

II 2 8 1 A skalaacuteris szorzat18II282 A vektoriaacutelis szorzat19

II29 Pont eacutes egyenes taacutevolsaacutega20II 3 MAacuteTRIXSZAacuteMIacuteTAacuteS22

II31 Maacutetrixok jellemzői22II32 Műveletek maacutetrixokkal23

II321 Maacutetrixok oumlsszeadaacutesa23II322 Maacutetrix szorzaacutesa skalaacuterral23II323 Maacutetrixok szorzaacutesa24

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK25

III1 TRANSZFORMAacuteCIOacuteK HAacuteROM DIMENZIOacuteBAN25III11 Haacuteromdimenzioacutes forgataacutes25III12 Vetiacuteteacutesi tiacutepusok28III13 Laacutethatoacutesaacuteg29

IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA30

IV1 3D GRAFIKA SZERKESZTŐPROGRAM 10 VERZIOacuteJAacuteNAK FELHASZNAacuteLOacuteI KEacuteZIKOumlNYVE30IV 2 A PROGRAM FOLYAMATAacuteBRAacuteJA39IV3 A PROGRAM ELJAacuteRAacuteSAI EacuteS FUumlGGVEacuteNYEINEK LEIacuteRAacuteSA42

V 3D VIDEO STUDIO47

2

Bevezeteacutes

A szaacutemiacutetoacutegeacutepes grafika segiacutetseacutegeacutevel a szaacuteraz matematikai teacutenyek

szemleacuteletes formaacuteban jelennek meg a megfigyelő szeme előtt Az emberi agy nem

arra van berendezkedve hogy digitaacutelis formaacutejuacute informaacutecioacutekat dolgozzon fel Azt

szoktuk meg hogy az informaacutecioacutekat elsősorban a szem reacuteveacuten maacutesodsorban

pedig a hallaacutes eacutes a tapintaacutes uacutetjaacuten nyerjuumlk eacutes ennek megfelelően dolgozzuk fel

Haacuterom dimenzioacutes vilaacutegban eacuteluumlnk A szaacutemiacutetoacutegeacutep nem tud haacuterom dimenzioacuteban

szaacutemolni sem keacutet dimenzioacuteban a geacutep digitalizaacutelt informaacutecioacutekhoz koumltoumltt Keacutepes

azonban a szaacutemiacutetoacutegeacutep arra hogy ezeket az informaacutecioacutekat alkalmas programokkal

koumlnnyen aacutettekinthető rajzokkaacute alakiacutetsa A szaacutemiacutetoacutegeacutep nem veacuteletlenuumll oumlrvend oly

nagy neacutepszerűseacutegnek az iparban eacutes a kutataacutesokban Segiacutetseacuteguumlkkel a kiacuteseacuterletek

gyakran egyszerűbben elveacutegezhetők eacutes leacutenyegesen olcsoacutebbak is A grafikus

adatfeldolgozaacutes jelentőseacutege legjobban az alkalmazaacutesi teruumlletein keresztuumll

mutathatoacute meg

Computer Added Design vagyis automatizaacutelt vaacutezlatkeacutesziacuteteacutes szerkeszteacutes

tervezeacutes

orvostechnikai alkalmazaacutesok

teacuterkeacutepeacuteszet

prezentaacutecioacutes grafika (uumlzleti grafika)

szaacutemiacutetoacutegeacutepes jaacuteteacutekok

a koumlrnyezet szimulaacutecioacuteja (pl katonai alkalmazaacutesok)

filmkeacutesziacuteteacutes animaacutecioacute

szaacutemiacutetoacutegeacutepes műveacuteszet

A felsorolt alkalmazaacutesok toumlbbseacutege igeacutenyli is a haacuterom dimenzioacutes

megjeleniacuteteacutest mivel a keacutet dimenzioacutes aacutebraacutezolaacutes nem mindig eleacuteggeacute szemleacuteletes A

haacuterom dimenzioacutes aacutebraacutezolaacuteson beluumll is a mozgoacute teacuterbeli grafikaacutek aacutellnak legkoumlzelebb

a laacutetaacutesunkhoz

3

A szaacutemiacutetoacutegeacutepes aacutebraacutezolaacutes egyik legeacuterdekesebb feladata a mozgoacute keacutepek

keacutesziacuteteacutese Az aacutebraacutezolt alakzat illetve a vetiacuteteacutesi iraacuteny mozgataacutesi keacutepleteinek

ismereteacuteben a feladat megoldaacutesaacutenak nincs elvi akadaacutelya A szaacutemiacutetoacutegeacutep

teljesiacutetőkeacutepesseacutege azonban megszabja a megjeleniacuteteacutesi sebesseacuteg felső hataacuteraacutet eacutes

ezaacuteltal a mozgaacutes laacutetvaacutenyaacutenak eacutelvezhetőseacutegeacutet Bonyolultabb teacuterbeli alakzatok

(uacutejrarajzolaacutessal toumlrteacutenő mozgataacutesa) eseteacuten ez a felső hataacuter eleacuteggeacute alacsony is

lehet Az animaacutecioacutekeacutesziacuteteacutes koumlzponti keacuterdeacutese az egymaacutes utaacuten koumlvetkező keacutepek

egyenletes villogaacutesmentes megjeleniacuteteacutese A keacutepernyőre toumlrteacutenő rajzolaacutest uacutegy kell

megvaloacutesiacutetani hogy a rajzoloacuteprogram akkor kezdje meg a keacutepernyő tetejeacuten leacutevő

sor kirajzolaacutesaacutet amikor a monitor vertikaacutelis elektronsugara befejezte az előző keacutep

megjeleniacuteteacuteseacutet Egy megfelelő teljesiacutetmeacutenyű szaacutemiacutetoacutegeacuteppel eleacuterhetjuumlk azt hogy

mire az elektronsugaacuter ismeacutet a keacutepernyő tetejeacutere keruumll addigra a koumlvetkező

megjeleniacutetendő keacutep a videokaacutertya memoacuteriaacutejaacuteba keruumlljoumln

A ceacutel tehaacutet olyan szaacutemiacutetoacutegeacutepre alkalmazhatoacute algoritmus leacutetrehozaacutesa

amely a lehető legnagyobb meacuterteacutekben igazodik laacutetaacutesunkhoz Ahhoz hogy a

laacutetaacutesunknak ezt a tiacutepusuacute szimulaacutecioacutejaacutet meg tudjuk valoacutesiacutetani meg kell ismerni

szemuumlnk szerkezeteacutet laacutetaacutesunk mechanizmusaacutet eacutes az alkalmazott szoftver

hardver koumlrnyezetet figyelembe veacuteve olyan algoritmust kell előaacutelliacutetanunk amely

ezt szaacutemiacutetoacutegeacutepen modellezi

A bemutatott matematikai modellekre taacutemaszkodoacute 3D Grafika

Szerkesztőprogram v10 [forraacuteskoacutedja a melleacutekletben talaacutelhatoacute] bemutatja a haacuterom

dimenzioacutes grafika eacutes az animaacutecioacute alapelveire taacutemaszkodoacute mechanizmust A

Pascal nyelven iacutert program alapos teacutergeometriai ismeretekkel tovaacutebbfejleszthető

amely keacutepes lehet szeacutelesebb koumlrű hasznaacutelatra Bonyolultabb vetiacutetett keacutepek

testekkeacute alakiacutetaacutesaacuteval majd uacutejboacuteli siacutekra vetiacuteteacuteseacutevel megfelelő peacuteldaacutekkal a program

hasznos segiacutetseacuteg lehet az aacutebraacutezoloacute geometria elsajaacutetiacutetoacuteinak

4

I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS

GRAFIKA

I1 A laacutetott keacutep felfogaacutesa

Az ember eacutes koumlrnyezete koumlzoumltti kapcsolatban a laacutetaacutes a legfontosabb

informaacutecioacuteszerzeacutesi moacuted rendkiacutevuumlli toumlmoumlrseacutege eacutes oumlsszetettseacutege miatt A

vilaacutegossaacuteg sziacuten alak teacuterbeliseacuteg illetve mozgaacutes egyaraacutent reacutesze annak az oumlsszetett

fizioloacutegiai folyamatnak melyet laacutetaacutesnak nevezuumlnk A szaacutemiacutetoacutegeacutepes keacutepfeldolgozaacutes

sokszor az emberi laacutetaacutest proacutebaacutelja modellezni maacutes esetekben pedig az emberi

laacutetaacutessal kapcsolatos ismereteket hasznaacutelja fel eacutepiacuteti be a feldolgozaacutes folyamataacuteba

Peacuteldakeacutent emliacutethető a JPEG keacuteptoumlmoumlriacutető eljaacuteraacutes amely azt hasznaacutelja ki hogy a

szem nem tud annyi sziacutent egymaacutestoacutel megkuumlloumlnboumlztetni mint amennyit a

szaacutemiacutetoacutegeacutep keacutepes megjeleniacuteteni Egy maacutesik heacutetkoumlznapi peacutelda a televiacutezioacute

keacutepernyőjeacuten laacutetott egymaacutest gyorsan koumlvető aacutelloacutekeacutepeket a szem mozgoacutekeacutepnek

laacutetja

A szemuumlnk recehaacutertyaacutejaacuten keletkező keacutepek keacutetdimenzioacutes siacutekbeli keacutepek

szeacutelesseacuteguumlk eacutes magassaacuteguk van Egy valoacutes taacutergynak amelynek a keacutepeacutet laacutetjuk

meacutelyseacutege is van A magyaraacutezata annak hogy haacuterom dimenzioacuteban laacutetjuk a vilaacutegot

az hogy keacutet szemmel egymaacutestoacutel kicsit elteacuterő keacutepet laacutetunk A retinaacutenkon keletkező

keacutepeket agyunk egyesiacuteti egy teacuterbeli keacuteppeacute

A laacutetaacutes mint tanult keacutepesseacuteg nem fuumlggetlen sem az adott foumlldrajzi

koumlrnyezettől sem az adott kortoacutel Peacuteldaacuteul a kuumlloumlnboumlző iskolaacutezottsaacuteggal rendelkező

afrikaiaknaacutel gyakori volt hogy a vizsgaacutelati anyagkeacutent bemutatott keacutepeket nem

fogtaacutek fel a teacuter aacutebraacutezolaacutesakeacutent szokaacutesos perspektivikus keacutepnek Tehaacutet bizonyosra

vehető hogy a mai euroacutepai kultuacuteraacuten nevelkedett szem szaacutemaacutera a valoacutesaacuteghoz igen

koumlzel aacutelloacute perspektivikus aacutebraacutezolaacutes eacuterteacutese eacutes igeacutenyleacutese tanulaacutes eredmeacutenye

5

I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel

I21 Szemuumlnk feleacutepiacuteteacutese

Szemuumlnk joacute koumlzeliacuteteacutessel 24 mm aacutetmeacuterőjű goumlmb alakuacute test (11 aacutebra)

amelynek eluumllső reacuteszeacuteből kiemelkedik a kisebb goumlrbuumlleti sugaruacute szaruhaacutertya

Haacuterom nevezetes siacutekot lehet megemliacuteteni equator siacutek (első eacutes haacutetsoacute feacuteltekeacutere

osztja a szemet) valamint a viacutezszintes eacutes fuumlggőleges meridiaacuten siacutekok A szem

valamely tulajdonsaacutegai miatt leacutenyeges pontok a szem legelső pontja A (polus

anterior) leghaacutetsoacute pontja B (polus posterior) A rajtuk aacutet huacutezott egyenes egy

főtengelyt alkot ebben metszi egymaacutest a keacutet fő meridiaacuten is Az A B pontokon

aacutetmenő egyenes neve axis bulbi A laacutetaacutes szempontjaacuteboacutel meacutegsem ez a fő tengely

hanem az axis opticus-nak is nevezett egyenes mely a fuumlggőleges meridiaacuten

siacutekjaacuteban van eacutes amely mintegy 5deg-os szoumlgben elteacuter az AB egyenestől Ez nem

maacutes mint a laacutetoacutesugaacuter a laacutetaacutes iraacutenyaacutet kijeloumllő egyenes Az axis opticus haacuterom

nevezetes pontja R az axis opticus doumlfeacutespontja a szem feluumlleteacuten Sr az axis

opticus doumlfeacutespontja az ideghaacutertyaacuten P pedig a szemlencse haacutetsoacute reacuteszeacutenek

koumlzeacuteppontja ez az optikai koumlzeacuteppont Az Sr pont koumlrnyezeteacutenek neve saacutergafolt

maacutesneacuteven fovea centralis

A szemlencse 9 mm aacutetmeacuterőjű vaacuteltoztathatoacute meacutelyseacutegi aacutetmeacuterőjű bikonvex

lencse melynek haacutetsoacute fele domboruacutebb az elsőneacutel Ez rugalmas foacutekusza aacutelliacutethatoacute

Ily moacutedon a beeső feacutenysugarak a kuumlloumlnboumlző taacutevolsaacutegban leacutevő taacutergyakroacutel is eacuteles

keacutepet adhatnak A feacutenysugarak tehaacutet a szaruhaacutertyaacuten a szemcsarnokon eacutes a

szivaacutervaacutenyhaacutertya aacutetlag 4 mm aacutetmeacuterőjű nyiacutelaacutesaacuten a pupillaacuten keresztuumll eacuterik el a

szemlencseacutet Onnan a lencse feacutenytoumlreacuteseacutenek megfelelően moacutedosulva oumlsszetartoacute

sugarakkeacutent az uumlvegtesten aacutet haladva eleacuterik az ideghaacutertyaacutet maacutesneacuteven retinaacutet Az

itt keletkező keacutep fordiacutetott aacutellaacutesuacute tartalmaz sziacuten eacutes toacutenusinformaacutecioacutekat is

Szemuumlnk feleacutepiacuteteacuteseacutet a koumlvetkező oldalon talaacutelhatoacute aacutebra szemleacutelteti

6

7

AB axis bulbi RSTaxis opticusA polus anterior legelső pont R axis opticus eluumllső pontjaB polus posterior leghaacutetsoacute pont ST fovea centralis saacutergafoltP az optikai koumlzeacuteppont S a szem aacuteltal neacutezett pontα feacutenysugaacuter beeseacutesi szoumlge M maacutesik teacuterbeli pontαrsquo feacutenysugaacuter toumlreacutesi szoumlge SM az axis opticusra merőlegesγ az STPMT szoumlg szakaszλ az axis bulbi eacutes a laacutetoacutesugaacuter MT M keacutepe az ideghaacutertyaacuten aacuteltal bezaacutert szoumlg

11 aacutebra

A szem feleacutepiacuteteacutese [4]

I22 A laacutetaacutes alapjai

A laacutetaacutes azon alapul hogy az igen roumlvid hullaacutemhosszuacutesaacuteguacute 380-780 nmndashes

frekvencia tartomaacutenyba eső elektromaacutegneses sugaacuterzaacutes a szemuumlnkben feacutenyeacuterzetet

kelt A szem feacutenyeacuterzeacutekeleacutesi mechanizmusaacutenak leacutenyege a sugaacuterzaacutesi energia

hataacutesaacutera a szem recehaacutertyaacutejaacutenak (retinaacutejaacutenak) idegszaacutelveacutegződeacutesei műkoumldeacutesbe

leacutepnek fizikai-keacutemiai folyamatok indulnak be melyek az agy megfelelő

koumlzpontjaihoz idegingeruumllet formaacutejaacuteban tovaacutebbiacutetoacutednak Keacutet egymaacutestoacutel

kismeacuterteacutekben kuumlloumlnboumlző keacutepet eacuterzeacutekeluumlnk melyek agyunkban teacuterbeli keacutep eacuterzeteacutet

keltik

I23 A visszavert feacuteny eacuterzeacutekeleacutese

A laacutetaacutest (fizikai-optikai oldalroacutel megkoumlzeliacutetve) a feacuteny valamint feacutenyelnyelő-

feacutenytoumlrő - feacutenyvisszaverő testek koumllcsoumlnhataacutesai teszik lehetőveacute Ennek fizikai

alapjai

A szuumlkseacuteges feacutenyt valamilyen elsődleges feacutenyforraacutes biztosiacutetja

A laacutetoacuteteacuter objektumai ndash mint maacutesodlagos feacutenyforraacutesok ndash visszaverik a raacutejuk eső

feacutenyt A visszavert feacuteny valamennyi jellemzője megvaacuteltozik ez a vaacuteltozaacutes

hordozza a laacutetaacuteshoz szuumlkseacuteges informaacutecioacutet

A visszavert feacuteny a szembe jut Az alapvető optikai oumlsszefuumlggeacutesek a szem

műkoumldeacuteseacutere neacutezve is eacuterveacutenyesek A szemnek mint lekeacutepező rendszernek

legfontosabb alkotoacuteeleme a szemlencse

8

Szemuumlnk alakja automatikusan koumlveti a keacutepalkotaacutes igeacutenyeit ezt a tudat alatti

szabaacutelyozaacutest nevezhetjuumlk autoacutefoacutekusznak is A lekeacutepezeacutes eredmeacutenyekeacutent a retina

belső (goumlmb) feluumlleteacuten leacutetrejoumln a fordiacutetott aacutellaacutesuacute keacutep

I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet

segiacutetseacutegeacutevel

A keacutepeacuterzet igen oumlsszetett fizioloacutegiai folyamat melyben a szemen az

ingeruumlletkoumlzvetiacutető idegpaacutelyaacutekon illetve az agy laacutetoacutekoumlzpontjaacuten kiacutevuumll igen nagy

szerepet kap a toumlbbi eacuterzeacutekszerv eacutes az uacuten vizuaacutelis emleacutekezet is Ez utoacutebbi teszi

lehetőveacute a laacutetvaacutenyboacutel hiaacutenyzoacute keacutepreacuteszek poacutetlaacutesaacutet az alakzatok felismereacuteseacutet

9

A laacutetaacutes az oumlsszes eacuterzeacutekelt informaacutecioacutenak toumlbb mint a feleacutet egyes kutatoacutek szerint

akaacuter 90 ndash aacutet is szolgaacuteltatja A kuumlloumlnboumlző eacuterzetek aacuteltalaacuteban keverednek

1egymaacutessal mivel toumlbb eacuterzeacutekszerv egyuumlttes műkoumldeacuteseacutenek eredmeacutenyei

Ugyanerre utal az is hogy a laacutetaacutes mennyire oumlsszefuumlgg a tanulaacutessal

szemuumlnk elvileg a megszuumlleteacutestől kezdve alkalmas lenne a laacutetaacutesban jaacutetszott

szerepeacutenek betoumllteacuteseacutere az uacutejszuumlloumltt azonban eleinte csak homaacutelyos foltokat

eacuteszlel melyek a vizuaacutelis memoacuteria toumlltődeacuteseacutevel a szem mozgataacutesaacutenak

tudatosulaacutesaacuteval vaacutelnak keacutepeacuterzetteacute

I25 Keacutepek lekeacutepzeacutese

Az ingeruumlletek tovaacutebbiacutetaacutesa az agy laacutetoacutekoumlzpontjai feleacute toumlbbszoumlroumls aacutetteacutetelen

keresztuumll igen nagy hibatűreacutessel rendelkező uacuten impulzuskoacuted modulaacutecioacuteval

toumlrteacutenik Nem az oumlsszes receptor jele jut el az idegpaacutelyaacutekon az agyba mivel a kb

126 millioacute receptorra csak kb 1 millioacute idegszaacutel jut Ez a redukcioacute egy retina szintű

előfeldolgozaacutest takar elsősorban az eacutelekre gyors vaacuteltozaacutesokra vonatkozoacute adatok

jutnak a koumlzponti idegrendszerbe A lekeacutepezeacutes időben gyorsan zajloacute folyamat

Agyi parancsra az izmok a szemet (vagy akaacuter az egeacutesz testet) uacutegy mozgatjaacutek

hogy a kiacutevaacutent laacutetvaacuteny leacutetrejoumlhessen

A szemlencse foacutekusztaacutevolsaacutegaacutenak eacutes a pupilla nyiacutelaacutesaacutenak automatikus

vaacuteltoztataacutesa folyamatosan biztosiacutetja az eacuteles keacutepalkotaacutest eacutes a megfelelő

feacutenymennyiseacuteget

I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai

I31 Sziacutenek eacuterzeacutekeleacutese

A receptorok eacuterzeacutekenyseacutege nemcsak a feacuteny erősseacutegeacutetől hanem annak

hullaacutemhosszaacutetoacutel is fuumlgg A laacutetaacutes soraacuten a feacuteny hullaacutemhossz szerinti oumlsszeteacuteteleacutet is

eacuterzeacutekeljuumlk ez a sziacuteneacuterzetben nyilvaacutenul meg A csapocskaacutek melyek a sziacutenlaacutetaacutest

teszik lehetőveacute haacuterom csoportba sorolhatoacutek ezeket eacuterzeacutekenyseacuteguumlk hullaacutemhossz-

fuumlggeacutese kuumlloumlnboumlzteti meg egymaacutestoacutel

10

P tiacutepus 80 nm (voumlroumls)

D tiacutepus 540 nm (zoumlld)

T tiacutepus 440 nm (keacutek)

A retinaacuten a receptorok eloszlaacutesa nem egyenletes a csapocskaacutek elsősorban

a laacutetoacutemező koumlzepeacuten fordulnak elő a paacutelcikaacutek pedig a szeacutelek feleacute ( a paacutelcikaacutek a

vilaacutegossaacuteg eacutes soumlteacutetseacuteg megkuumlloumlnboumlzteteacuteseacuteeacutert felelnek ) Ez a magyaraacutezata

annak hogy sziacutenlaacutetaacutesunk a laacutetoacuteteacuter szeacutele feleacute gyengeacutebb miacuteg a feacutenyerősseacuteg

vaacuteltozaacutesokat a szeacutelek feleacute eacuterzeacutekeljuumlk jobban

Az idegpaacutelyaacutek kileacutepeacutesi helyeacuten az uacuten vakfolton nincsenek receptorok s iacutegy az ide

eső feacuteny nem vesz reacuteszt az eacuterzeacutekeleacutesben Az hogy meacutegis oumlsszefuumlggő keacutepet

laacutetunk agyunk eacutes vizuaacutelis emleacutekezetuumlnk eredmeacutenye A laacutetaacutes eacuterzeacutekenyseacutege

(finomsaacutega reacuteszletgazdagsaacutega) toumlbbfeacutele jellemző egyuumltteseacutetől fuumlgg

a geometriai felbontaacutes azt hataacuterozza meg hogy adott taacutevolsaacutegban egymaacuteshoz

milyen koumlzel leacutevő pontokat tudunk kuumlloumlnaacutelloacute pontokkeacutent eacuteszlelni

az intenzitaacutes-felbontaacutes a feacutenyerősseacuteg-vaacuteltozaacutes eacuterzeacutekeleacuteseacutet

a sziacutenfelbontaacutes pedig a sziacutenaacuternyalatok elkuumlloumlniacuteteacutesi keacutepesseacutegeacutet adja meg

I32 Laacutetaacutesunk időbeli felbontaacutesa

Ez azt jelenti hogy mennyi ideig kell egy laacutetvaacutenynak tartania ahhoz hogy

kuumlloumlnaacutelloacutenak - az előtte eacutes utaacutena koumlvetkező laacutetvaacutenytoacutel kuumlloumlnboumlzőnek - eacuterzeacuteklejuumlk

Tapasztalatok szerint a kb 115 maacutesodpercneacutel roumlvidebb időre bdquobevillanoacuterdquo

keacutepeket nem tudjuk egymaacutestoacutel elkuumlloumlniacutetve eacuterzeacutekelni pontosabban tudatunk

szintjeacuten oumlsszefolynak egymaacutessal (A film eacutes a televiacutezioacute ezt a felbontaacutesi korlaacutetot

hasznaacutelja ki a mozgaacutes eacuterzeteacutenek kelteacuteseacutere a maacutesodpercenkeacutenti 16-25 aacutelloacutekeacutep

megjeleniacuteteacutese szaacutemunkra oumlsszefuumlggő viszonylag villogaacutesmentes mozgoacutekeacutepkeacutent

jelentkezik)

11

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 2: 3D Grafika És Animáció

Tartalom

I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA5

I1 A LAacuteTOTT KEacuteP FELFOGAacuteSA5I2 A LAacuteTAacuteS BIOLOacuteGIAacuteJA KEacutePALKOTAacuteS AZ EMLEacuteKEZET SEGIacuteTSEacuteGEacuteVEL6

I21 Szemuumlnk feleacutepiacuteteacutese6I22 A laacutetaacutes alapjai8I23 A visszavert feacuteny eacuterzeacutekeleacutese8I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel8I25 Keacutepek lekeacutepzeacutese9

I3 A SZIacuteNLAacuteTAacuteS EacuteS A LAacuteTAacuteS EGYEacuteB SAJAacuteTOSSAacuteGAI9I31 Sziacutenek eacuterzeacutekeleacutese9I32 Laacutetaacutesunk időbeli felbontaacutesa10I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői11I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere11I35 Alakzatlaacutetaacutes12

II MATEMATIKAI ALAPOK13

II1 TESTEK FELSZIacuteNEacuteNEK KOumlZELIacuteTEacuteSE13II2 VEKTOROK R2-BEN EacuteS R3-BAN14

II21 Iraacutenyiacutetott szakaszok14II22 Vektorok jellemzői14II23 Vektorok oumlsszege15II24 Vektorok szorzaacutesa szaacutemmal15II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja16II26 Vektorok megadaacutesa koordinaacutetaacutekkal17II27 Egyenesek parameacuteteres egyenletei18II28 Vektorok szorzaacutesa18

II 2 8 1 A skalaacuteris szorzat18II282 A vektoriaacutelis szorzat19

II29 Pont eacutes egyenes taacutevolsaacutega20II 3 MAacuteTRIXSZAacuteMIacuteTAacuteS22

II31 Maacutetrixok jellemzői22II32 Műveletek maacutetrixokkal23

II321 Maacutetrixok oumlsszeadaacutesa23II322 Maacutetrix szorzaacutesa skalaacuterral23II323 Maacutetrixok szorzaacutesa24

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK25

III1 TRANSZFORMAacuteCIOacuteK HAacuteROM DIMENZIOacuteBAN25III11 Haacuteromdimenzioacutes forgataacutes25III12 Vetiacuteteacutesi tiacutepusok28III13 Laacutethatoacutesaacuteg29

IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA30

IV1 3D GRAFIKA SZERKESZTŐPROGRAM 10 VERZIOacuteJAacuteNAK FELHASZNAacuteLOacuteI KEacuteZIKOumlNYVE30IV 2 A PROGRAM FOLYAMATAacuteBRAacuteJA39IV3 A PROGRAM ELJAacuteRAacuteSAI EacuteS FUumlGGVEacuteNYEINEK LEIacuteRAacuteSA42

V 3D VIDEO STUDIO47

2

Bevezeteacutes

A szaacutemiacutetoacutegeacutepes grafika segiacutetseacutegeacutevel a szaacuteraz matematikai teacutenyek

szemleacuteletes formaacuteban jelennek meg a megfigyelő szeme előtt Az emberi agy nem

arra van berendezkedve hogy digitaacutelis formaacutejuacute informaacutecioacutekat dolgozzon fel Azt

szoktuk meg hogy az informaacutecioacutekat elsősorban a szem reacuteveacuten maacutesodsorban

pedig a hallaacutes eacutes a tapintaacutes uacutetjaacuten nyerjuumlk eacutes ennek megfelelően dolgozzuk fel

Haacuterom dimenzioacutes vilaacutegban eacuteluumlnk A szaacutemiacutetoacutegeacutep nem tud haacuterom dimenzioacuteban

szaacutemolni sem keacutet dimenzioacuteban a geacutep digitalizaacutelt informaacutecioacutekhoz koumltoumltt Keacutepes

azonban a szaacutemiacutetoacutegeacutep arra hogy ezeket az informaacutecioacutekat alkalmas programokkal

koumlnnyen aacutettekinthető rajzokkaacute alakiacutetsa A szaacutemiacutetoacutegeacutep nem veacuteletlenuumll oumlrvend oly

nagy neacutepszerűseacutegnek az iparban eacutes a kutataacutesokban Segiacutetseacuteguumlkkel a kiacuteseacuterletek

gyakran egyszerűbben elveacutegezhetők eacutes leacutenyegesen olcsoacutebbak is A grafikus

adatfeldolgozaacutes jelentőseacutege legjobban az alkalmazaacutesi teruumlletein keresztuumll

mutathatoacute meg

Computer Added Design vagyis automatizaacutelt vaacutezlatkeacutesziacuteteacutes szerkeszteacutes

tervezeacutes

orvostechnikai alkalmazaacutesok

teacuterkeacutepeacuteszet

prezentaacutecioacutes grafika (uumlzleti grafika)

szaacutemiacutetoacutegeacutepes jaacuteteacutekok

a koumlrnyezet szimulaacutecioacuteja (pl katonai alkalmazaacutesok)

filmkeacutesziacuteteacutes animaacutecioacute

szaacutemiacutetoacutegeacutepes műveacuteszet

A felsorolt alkalmazaacutesok toumlbbseacutege igeacutenyli is a haacuterom dimenzioacutes

megjeleniacuteteacutest mivel a keacutet dimenzioacutes aacutebraacutezolaacutes nem mindig eleacuteggeacute szemleacuteletes A

haacuterom dimenzioacutes aacutebraacutezolaacuteson beluumll is a mozgoacute teacuterbeli grafikaacutek aacutellnak legkoumlzelebb

a laacutetaacutesunkhoz

3

A szaacutemiacutetoacutegeacutepes aacutebraacutezolaacutes egyik legeacuterdekesebb feladata a mozgoacute keacutepek

keacutesziacuteteacutese Az aacutebraacutezolt alakzat illetve a vetiacuteteacutesi iraacuteny mozgataacutesi keacutepleteinek

ismereteacuteben a feladat megoldaacutesaacutenak nincs elvi akadaacutelya A szaacutemiacutetoacutegeacutep

teljesiacutetőkeacutepesseacutege azonban megszabja a megjeleniacuteteacutesi sebesseacuteg felső hataacuteraacutet eacutes

ezaacuteltal a mozgaacutes laacutetvaacutenyaacutenak eacutelvezhetőseacutegeacutet Bonyolultabb teacuterbeli alakzatok

(uacutejrarajzolaacutessal toumlrteacutenő mozgataacutesa) eseteacuten ez a felső hataacuter eleacuteggeacute alacsony is

lehet Az animaacutecioacutekeacutesziacuteteacutes koumlzponti keacuterdeacutese az egymaacutes utaacuten koumlvetkező keacutepek

egyenletes villogaacutesmentes megjeleniacuteteacutese A keacutepernyőre toumlrteacutenő rajzolaacutest uacutegy kell

megvaloacutesiacutetani hogy a rajzoloacuteprogram akkor kezdje meg a keacutepernyő tetejeacuten leacutevő

sor kirajzolaacutesaacutet amikor a monitor vertikaacutelis elektronsugara befejezte az előző keacutep

megjeleniacuteteacuteseacutet Egy megfelelő teljesiacutetmeacutenyű szaacutemiacutetoacutegeacuteppel eleacuterhetjuumlk azt hogy

mire az elektronsugaacuter ismeacutet a keacutepernyő tetejeacutere keruumll addigra a koumlvetkező

megjeleniacutetendő keacutep a videokaacutertya memoacuteriaacutejaacuteba keruumlljoumln

A ceacutel tehaacutet olyan szaacutemiacutetoacutegeacutepre alkalmazhatoacute algoritmus leacutetrehozaacutesa

amely a lehető legnagyobb meacuterteacutekben igazodik laacutetaacutesunkhoz Ahhoz hogy a

laacutetaacutesunknak ezt a tiacutepusuacute szimulaacutecioacutejaacutet meg tudjuk valoacutesiacutetani meg kell ismerni

szemuumlnk szerkezeteacutet laacutetaacutesunk mechanizmusaacutet eacutes az alkalmazott szoftver

hardver koumlrnyezetet figyelembe veacuteve olyan algoritmust kell előaacutelliacutetanunk amely

ezt szaacutemiacutetoacutegeacutepen modellezi

A bemutatott matematikai modellekre taacutemaszkodoacute 3D Grafika

Szerkesztőprogram v10 [forraacuteskoacutedja a melleacutekletben talaacutelhatoacute] bemutatja a haacuterom

dimenzioacutes grafika eacutes az animaacutecioacute alapelveire taacutemaszkodoacute mechanizmust A

Pascal nyelven iacutert program alapos teacutergeometriai ismeretekkel tovaacutebbfejleszthető

amely keacutepes lehet szeacutelesebb koumlrű hasznaacutelatra Bonyolultabb vetiacutetett keacutepek

testekkeacute alakiacutetaacutesaacuteval majd uacutejboacuteli siacutekra vetiacuteteacuteseacutevel megfelelő peacuteldaacutekkal a program

hasznos segiacutetseacuteg lehet az aacutebraacutezoloacute geometria elsajaacutetiacutetoacuteinak

4

I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS

GRAFIKA

I1 A laacutetott keacutep felfogaacutesa

Az ember eacutes koumlrnyezete koumlzoumltti kapcsolatban a laacutetaacutes a legfontosabb

informaacutecioacuteszerzeacutesi moacuted rendkiacutevuumlli toumlmoumlrseacutege eacutes oumlsszetettseacutege miatt A

vilaacutegossaacuteg sziacuten alak teacuterbeliseacuteg illetve mozgaacutes egyaraacutent reacutesze annak az oumlsszetett

fizioloacutegiai folyamatnak melyet laacutetaacutesnak nevezuumlnk A szaacutemiacutetoacutegeacutepes keacutepfeldolgozaacutes

sokszor az emberi laacutetaacutest proacutebaacutelja modellezni maacutes esetekben pedig az emberi

laacutetaacutessal kapcsolatos ismereteket hasznaacutelja fel eacutepiacuteti be a feldolgozaacutes folyamataacuteba

Peacuteldakeacutent emliacutethető a JPEG keacuteptoumlmoumlriacutető eljaacuteraacutes amely azt hasznaacutelja ki hogy a

szem nem tud annyi sziacutent egymaacutestoacutel megkuumlloumlnboumlztetni mint amennyit a

szaacutemiacutetoacutegeacutep keacutepes megjeleniacuteteni Egy maacutesik heacutetkoumlznapi peacutelda a televiacutezioacute

keacutepernyőjeacuten laacutetott egymaacutest gyorsan koumlvető aacutelloacutekeacutepeket a szem mozgoacutekeacutepnek

laacutetja

A szemuumlnk recehaacutertyaacutejaacuten keletkező keacutepek keacutetdimenzioacutes siacutekbeli keacutepek

szeacutelesseacuteguumlk eacutes magassaacuteguk van Egy valoacutes taacutergynak amelynek a keacutepeacutet laacutetjuk

meacutelyseacutege is van A magyaraacutezata annak hogy haacuterom dimenzioacuteban laacutetjuk a vilaacutegot

az hogy keacutet szemmel egymaacutestoacutel kicsit elteacuterő keacutepet laacutetunk A retinaacutenkon keletkező

keacutepeket agyunk egyesiacuteti egy teacuterbeli keacuteppeacute

A laacutetaacutes mint tanult keacutepesseacuteg nem fuumlggetlen sem az adott foumlldrajzi

koumlrnyezettől sem az adott kortoacutel Peacuteldaacuteul a kuumlloumlnboumlző iskolaacutezottsaacuteggal rendelkező

afrikaiaknaacutel gyakori volt hogy a vizsgaacutelati anyagkeacutent bemutatott keacutepeket nem

fogtaacutek fel a teacuter aacutebraacutezolaacutesakeacutent szokaacutesos perspektivikus keacutepnek Tehaacutet bizonyosra

vehető hogy a mai euroacutepai kultuacuteraacuten nevelkedett szem szaacutemaacutera a valoacutesaacuteghoz igen

koumlzel aacutelloacute perspektivikus aacutebraacutezolaacutes eacuterteacutese eacutes igeacutenyleacutese tanulaacutes eredmeacutenye

5

I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel

I21 Szemuumlnk feleacutepiacuteteacutese

Szemuumlnk joacute koumlzeliacuteteacutessel 24 mm aacutetmeacuterőjű goumlmb alakuacute test (11 aacutebra)

amelynek eluumllső reacuteszeacuteből kiemelkedik a kisebb goumlrbuumlleti sugaruacute szaruhaacutertya

Haacuterom nevezetes siacutekot lehet megemliacuteteni equator siacutek (első eacutes haacutetsoacute feacuteltekeacutere

osztja a szemet) valamint a viacutezszintes eacutes fuumlggőleges meridiaacuten siacutekok A szem

valamely tulajdonsaacutegai miatt leacutenyeges pontok a szem legelső pontja A (polus

anterior) leghaacutetsoacute pontja B (polus posterior) A rajtuk aacutet huacutezott egyenes egy

főtengelyt alkot ebben metszi egymaacutest a keacutet fő meridiaacuten is Az A B pontokon

aacutetmenő egyenes neve axis bulbi A laacutetaacutes szempontjaacuteboacutel meacutegsem ez a fő tengely

hanem az axis opticus-nak is nevezett egyenes mely a fuumlggőleges meridiaacuten

siacutekjaacuteban van eacutes amely mintegy 5deg-os szoumlgben elteacuter az AB egyenestől Ez nem

maacutes mint a laacutetoacutesugaacuter a laacutetaacutes iraacutenyaacutet kijeloumllő egyenes Az axis opticus haacuterom

nevezetes pontja R az axis opticus doumlfeacutespontja a szem feluumlleteacuten Sr az axis

opticus doumlfeacutespontja az ideghaacutertyaacuten P pedig a szemlencse haacutetsoacute reacuteszeacutenek

koumlzeacuteppontja ez az optikai koumlzeacuteppont Az Sr pont koumlrnyezeteacutenek neve saacutergafolt

maacutesneacuteven fovea centralis

A szemlencse 9 mm aacutetmeacuterőjű vaacuteltoztathatoacute meacutelyseacutegi aacutetmeacuterőjű bikonvex

lencse melynek haacutetsoacute fele domboruacutebb az elsőneacutel Ez rugalmas foacutekusza aacutelliacutethatoacute

Ily moacutedon a beeső feacutenysugarak a kuumlloumlnboumlző taacutevolsaacutegban leacutevő taacutergyakroacutel is eacuteles

keacutepet adhatnak A feacutenysugarak tehaacutet a szaruhaacutertyaacuten a szemcsarnokon eacutes a

szivaacutervaacutenyhaacutertya aacutetlag 4 mm aacutetmeacuterőjű nyiacutelaacutesaacuten a pupillaacuten keresztuumll eacuterik el a

szemlencseacutet Onnan a lencse feacutenytoumlreacuteseacutenek megfelelően moacutedosulva oumlsszetartoacute

sugarakkeacutent az uumlvegtesten aacutet haladva eleacuterik az ideghaacutertyaacutet maacutesneacuteven retinaacutet Az

itt keletkező keacutep fordiacutetott aacutellaacutesuacute tartalmaz sziacuten eacutes toacutenusinformaacutecioacutekat is

Szemuumlnk feleacutepiacuteteacuteseacutet a koumlvetkező oldalon talaacutelhatoacute aacutebra szemleacutelteti

6

7

AB axis bulbi RSTaxis opticusA polus anterior legelső pont R axis opticus eluumllső pontjaB polus posterior leghaacutetsoacute pont ST fovea centralis saacutergafoltP az optikai koumlzeacuteppont S a szem aacuteltal neacutezett pontα feacutenysugaacuter beeseacutesi szoumlge M maacutesik teacuterbeli pontαrsquo feacutenysugaacuter toumlreacutesi szoumlge SM az axis opticusra merőlegesγ az STPMT szoumlg szakaszλ az axis bulbi eacutes a laacutetoacutesugaacuter MT M keacutepe az ideghaacutertyaacuten aacuteltal bezaacutert szoumlg

11 aacutebra

A szem feleacutepiacuteteacutese [4]

I22 A laacutetaacutes alapjai

A laacutetaacutes azon alapul hogy az igen roumlvid hullaacutemhosszuacutesaacuteguacute 380-780 nmndashes

frekvencia tartomaacutenyba eső elektromaacutegneses sugaacuterzaacutes a szemuumlnkben feacutenyeacuterzetet

kelt A szem feacutenyeacuterzeacutekeleacutesi mechanizmusaacutenak leacutenyege a sugaacuterzaacutesi energia

hataacutesaacutera a szem recehaacutertyaacutejaacutenak (retinaacutejaacutenak) idegszaacutelveacutegződeacutesei műkoumldeacutesbe

leacutepnek fizikai-keacutemiai folyamatok indulnak be melyek az agy megfelelő

koumlzpontjaihoz idegingeruumllet formaacutejaacuteban tovaacutebbiacutetoacutednak Keacutet egymaacutestoacutel

kismeacuterteacutekben kuumlloumlnboumlző keacutepet eacuterzeacutekeluumlnk melyek agyunkban teacuterbeli keacutep eacuterzeteacutet

keltik

I23 A visszavert feacuteny eacuterzeacutekeleacutese

A laacutetaacutest (fizikai-optikai oldalroacutel megkoumlzeliacutetve) a feacuteny valamint feacutenyelnyelő-

feacutenytoumlrő - feacutenyvisszaverő testek koumllcsoumlnhataacutesai teszik lehetőveacute Ennek fizikai

alapjai

A szuumlkseacuteges feacutenyt valamilyen elsődleges feacutenyforraacutes biztosiacutetja

A laacutetoacuteteacuter objektumai ndash mint maacutesodlagos feacutenyforraacutesok ndash visszaverik a raacutejuk eső

feacutenyt A visszavert feacuteny valamennyi jellemzője megvaacuteltozik ez a vaacuteltozaacutes

hordozza a laacutetaacuteshoz szuumlkseacuteges informaacutecioacutet

A visszavert feacuteny a szembe jut Az alapvető optikai oumlsszefuumlggeacutesek a szem

műkoumldeacuteseacutere neacutezve is eacuterveacutenyesek A szemnek mint lekeacutepező rendszernek

legfontosabb alkotoacuteeleme a szemlencse

8

Szemuumlnk alakja automatikusan koumlveti a keacutepalkotaacutes igeacutenyeit ezt a tudat alatti

szabaacutelyozaacutest nevezhetjuumlk autoacutefoacutekusznak is A lekeacutepezeacutes eredmeacutenyekeacutent a retina

belső (goumlmb) feluumlleteacuten leacutetrejoumln a fordiacutetott aacutellaacutesuacute keacutep

I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet

segiacutetseacutegeacutevel

A keacutepeacuterzet igen oumlsszetett fizioloacutegiai folyamat melyben a szemen az

ingeruumlletkoumlzvetiacutető idegpaacutelyaacutekon illetve az agy laacutetoacutekoumlzpontjaacuten kiacutevuumll igen nagy

szerepet kap a toumlbbi eacuterzeacutekszerv eacutes az uacuten vizuaacutelis emleacutekezet is Ez utoacutebbi teszi

lehetőveacute a laacutetvaacutenyboacutel hiaacutenyzoacute keacutepreacuteszek poacutetlaacutesaacutet az alakzatok felismereacuteseacutet

9

A laacutetaacutes az oumlsszes eacuterzeacutekelt informaacutecioacutenak toumlbb mint a feleacutet egyes kutatoacutek szerint

akaacuter 90 ndash aacutet is szolgaacuteltatja A kuumlloumlnboumlző eacuterzetek aacuteltalaacuteban keverednek

1egymaacutessal mivel toumlbb eacuterzeacutekszerv egyuumlttes műkoumldeacuteseacutenek eredmeacutenyei

Ugyanerre utal az is hogy a laacutetaacutes mennyire oumlsszefuumlgg a tanulaacutessal

szemuumlnk elvileg a megszuumlleteacutestől kezdve alkalmas lenne a laacutetaacutesban jaacutetszott

szerepeacutenek betoumllteacuteseacutere az uacutejszuumlloumltt azonban eleinte csak homaacutelyos foltokat

eacuteszlel melyek a vizuaacutelis memoacuteria toumlltődeacuteseacutevel a szem mozgataacutesaacutenak

tudatosulaacutesaacuteval vaacutelnak keacutepeacuterzetteacute

I25 Keacutepek lekeacutepzeacutese

Az ingeruumlletek tovaacutebbiacutetaacutesa az agy laacutetoacutekoumlzpontjai feleacute toumlbbszoumlroumls aacutetteacutetelen

keresztuumll igen nagy hibatűreacutessel rendelkező uacuten impulzuskoacuted modulaacutecioacuteval

toumlrteacutenik Nem az oumlsszes receptor jele jut el az idegpaacutelyaacutekon az agyba mivel a kb

126 millioacute receptorra csak kb 1 millioacute idegszaacutel jut Ez a redukcioacute egy retina szintű

előfeldolgozaacutest takar elsősorban az eacutelekre gyors vaacuteltozaacutesokra vonatkozoacute adatok

jutnak a koumlzponti idegrendszerbe A lekeacutepezeacutes időben gyorsan zajloacute folyamat

Agyi parancsra az izmok a szemet (vagy akaacuter az egeacutesz testet) uacutegy mozgatjaacutek

hogy a kiacutevaacutent laacutetvaacuteny leacutetrejoumlhessen

A szemlencse foacutekusztaacutevolsaacutegaacutenak eacutes a pupilla nyiacutelaacutesaacutenak automatikus

vaacuteltoztataacutesa folyamatosan biztosiacutetja az eacuteles keacutepalkotaacutest eacutes a megfelelő

feacutenymennyiseacuteget

I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai

I31 Sziacutenek eacuterzeacutekeleacutese

A receptorok eacuterzeacutekenyseacutege nemcsak a feacuteny erősseacutegeacutetől hanem annak

hullaacutemhosszaacutetoacutel is fuumlgg A laacutetaacutes soraacuten a feacuteny hullaacutemhossz szerinti oumlsszeteacuteteleacutet is

eacuterzeacutekeljuumlk ez a sziacuteneacuterzetben nyilvaacutenul meg A csapocskaacutek melyek a sziacutenlaacutetaacutest

teszik lehetőveacute haacuterom csoportba sorolhatoacutek ezeket eacuterzeacutekenyseacuteguumlk hullaacutemhossz-

fuumlggeacutese kuumlloumlnboumlzteti meg egymaacutestoacutel

10

P tiacutepus 80 nm (voumlroumls)

D tiacutepus 540 nm (zoumlld)

T tiacutepus 440 nm (keacutek)

A retinaacuten a receptorok eloszlaacutesa nem egyenletes a csapocskaacutek elsősorban

a laacutetoacutemező koumlzepeacuten fordulnak elő a paacutelcikaacutek pedig a szeacutelek feleacute ( a paacutelcikaacutek a

vilaacutegossaacuteg eacutes soumlteacutetseacuteg megkuumlloumlnboumlzteteacuteseacuteeacutert felelnek ) Ez a magyaraacutezata

annak hogy sziacutenlaacutetaacutesunk a laacutetoacuteteacuter szeacutele feleacute gyengeacutebb miacuteg a feacutenyerősseacuteg

vaacuteltozaacutesokat a szeacutelek feleacute eacuterzeacutekeljuumlk jobban

Az idegpaacutelyaacutek kileacutepeacutesi helyeacuten az uacuten vakfolton nincsenek receptorok s iacutegy az ide

eső feacuteny nem vesz reacuteszt az eacuterzeacutekeleacutesben Az hogy meacutegis oumlsszefuumlggő keacutepet

laacutetunk agyunk eacutes vizuaacutelis emleacutekezetuumlnk eredmeacutenye A laacutetaacutes eacuterzeacutekenyseacutege

(finomsaacutega reacuteszletgazdagsaacutega) toumlbbfeacutele jellemző egyuumltteseacutetől fuumlgg

a geometriai felbontaacutes azt hataacuterozza meg hogy adott taacutevolsaacutegban egymaacuteshoz

milyen koumlzel leacutevő pontokat tudunk kuumlloumlnaacutelloacute pontokkeacutent eacuteszlelni

az intenzitaacutes-felbontaacutes a feacutenyerősseacuteg-vaacuteltozaacutes eacuterzeacutekeleacuteseacutet

a sziacutenfelbontaacutes pedig a sziacutenaacuternyalatok elkuumlloumlniacuteteacutesi keacutepesseacutegeacutet adja meg

I32 Laacutetaacutesunk időbeli felbontaacutesa

Ez azt jelenti hogy mennyi ideig kell egy laacutetvaacutenynak tartania ahhoz hogy

kuumlloumlnaacutelloacutenak - az előtte eacutes utaacutena koumlvetkező laacutetvaacutenytoacutel kuumlloumlnboumlzőnek - eacuterzeacuteklejuumlk

Tapasztalatok szerint a kb 115 maacutesodpercneacutel roumlvidebb időre bdquobevillanoacuterdquo

keacutepeket nem tudjuk egymaacutestoacutel elkuumlloumlniacutetve eacuterzeacutekelni pontosabban tudatunk

szintjeacuten oumlsszefolynak egymaacutessal (A film eacutes a televiacutezioacute ezt a felbontaacutesi korlaacutetot

hasznaacutelja ki a mozgaacutes eacuterzeteacutenek kelteacuteseacutere a maacutesodpercenkeacutenti 16-25 aacutelloacutekeacutep

megjeleniacuteteacutese szaacutemunkra oumlsszefuumlggő viszonylag villogaacutesmentes mozgoacutekeacutepkeacutent

jelentkezik)

11

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 3: 3D Grafika És Animáció

Bevezeteacutes

A szaacutemiacutetoacutegeacutepes grafika segiacutetseacutegeacutevel a szaacuteraz matematikai teacutenyek

szemleacuteletes formaacuteban jelennek meg a megfigyelő szeme előtt Az emberi agy nem

arra van berendezkedve hogy digitaacutelis formaacutejuacute informaacutecioacutekat dolgozzon fel Azt

szoktuk meg hogy az informaacutecioacutekat elsősorban a szem reacuteveacuten maacutesodsorban

pedig a hallaacutes eacutes a tapintaacutes uacutetjaacuten nyerjuumlk eacutes ennek megfelelően dolgozzuk fel

Haacuterom dimenzioacutes vilaacutegban eacuteluumlnk A szaacutemiacutetoacutegeacutep nem tud haacuterom dimenzioacuteban

szaacutemolni sem keacutet dimenzioacuteban a geacutep digitalizaacutelt informaacutecioacutekhoz koumltoumltt Keacutepes

azonban a szaacutemiacutetoacutegeacutep arra hogy ezeket az informaacutecioacutekat alkalmas programokkal

koumlnnyen aacutettekinthető rajzokkaacute alakiacutetsa A szaacutemiacutetoacutegeacutep nem veacuteletlenuumll oumlrvend oly

nagy neacutepszerűseacutegnek az iparban eacutes a kutataacutesokban Segiacutetseacuteguumlkkel a kiacuteseacuterletek

gyakran egyszerűbben elveacutegezhetők eacutes leacutenyegesen olcsoacutebbak is A grafikus

adatfeldolgozaacutes jelentőseacutege legjobban az alkalmazaacutesi teruumlletein keresztuumll

mutathatoacute meg

Computer Added Design vagyis automatizaacutelt vaacutezlatkeacutesziacuteteacutes szerkeszteacutes

tervezeacutes

orvostechnikai alkalmazaacutesok

teacuterkeacutepeacuteszet

prezentaacutecioacutes grafika (uumlzleti grafika)

szaacutemiacutetoacutegeacutepes jaacuteteacutekok

a koumlrnyezet szimulaacutecioacuteja (pl katonai alkalmazaacutesok)

filmkeacutesziacuteteacutes animaacutecioacute

szaacutemiacutetoacutegeacutepes műveacuteszet

A felsorolt alkalmazaacutesok toumlbbseacutege igeacutenyli is a haacuterom dimenzioacutes

megjeleniacuteteacutest mivel a keacutet dimenzioacutes aacutebraacutezolaacutes nem mindig eleacuteggeacute szemleacuteletes A

haacuterom dimenzioacutes aacutebraacutezolaacuteson beluumll is a mozgoacute teacuterbeli grafikaacutek aacutellnak legkoumlzelebb

a laacutetaacutesunkhoz

3

A szaacutemiacutetoacutegeacutepes aacutebraacutezolaacutes egyik legeacuterdekesebb feladata a mozgoacute keacutepek

keacutesziacuteteacutese Az aacutebraacutezolt alakzat illetve a vetiacuteteacutesi iraacuteny mozgataacutesi keacutepleteinek

ismereteacuteben a feladat megoldaacutesaacutenak nincs elvi akadaacutelya A szaacutemiacutetoacutegeacutep

teljesiacutetőkeacutepesseacutege azonban megszabja a megjeleniacuteteacutesi sebesseacuteg felső hataacuteraacutet eacutes

ezaacuteltal a mozgaacutes laacutetvaacutenyaacutenak eacutelvezhetőseacutegeacutet Bonyolultabb teacuterbeli alakzatok

(uacutejrarajzolaacutessal toumlrteacutenő mozgataacutesa) eseteacuten ez a felső hataacuter eleacuteggeacute alacsony is

lehet Az animaacutecioacutekeacutesziacuteteacutes koumlzponti keacuterdeacutese az egymaacutes utaacuten koumlvetkező keacutepek

egyenletes villogaacutesmentes megjeleniacuteteacutese A keacutepernyőre toumlrteacutenő rajzolaacutest uacutegy kell

megvaloacutesiacutetani hogy a rajzoloacuteprogram akkor kezdje meg a keacutepernyő tetejeacuten leacutevő

sor kirajzolaacutesaacutet amikor a monitor vertikaacutelis elektronsugara befejezte az előző keacutep

megjeleniacuteteacuteseacutet Egy megfelelő teljesiacutetmeacutenyű szaacutemiacutetoacutegeacuteppel eleacuterhetjuumlk azt hogy

mire az elektronsugaacuter ismeacutet a keacutepernyő tetejeacutere keruumll addigra a koumlvetkező

megjeleniacutetendő keacutep a videokaacutertya memoacuteriaacutejaacuteba keruumlljoumln

A ceacutel tehaacutet olyan szaacutemiacutetoacutegeacutepre alkalmazhatoacute algoritmus leacutetrehozaacutesa

amely a lehető legnagyobb meacuterteacutekben igazodik laacutetaacutesunkhoz Ahhoz hogy a

laacutetaacutesunknak ezt a tiacutepusuacute szimulaacutecioacutejaacutet meg tudjuk valoacutesiacutetani meg kell ismerni

szemuumlnk szerkezeteacutet laacutetaacutesunk mechanizmusaacutet eacutes az alkalmazott szoftver

hardver koumlrnyezetet figyelembe veacuteve olyan algoritmust kell előaacutelliacutetanunk amely

ezt szaacutemiacutetoacutegeacutepen modellezi

A bemutatott matematikai modellekre taacutemaszkodoacute 3D Grafika

Szerkesztőprogram v10 [forraacuteskoacutedja a melleacutekletben talaacutelhatoacute] bemutatja a haacuterom

dimenzioacutes grafika eacutes az animaacutecioacute alapelveire taacutemaszkodoacute mechanizmust A

Pascal nyelven iacutert program alapos teacutergeometriai ismeretekkel tovaacutebbfejleszthető

amely keacutepes lehet szeacutelesebb koumlrű hasznaacutelatra Bonyolultabb vetiacutetett keacutepek

testekkeacute alakiacutetaacutesaacuteval majd uacutejboacuteli siacutekra vetiacuteteacuteseacutevel megfelelő peacuteldaacutekkal a program

hasznos segiacutetseacuteg lehet az aacutebraacutezoloacute geometria elsajaacutetiacutetoacuteinak

4

I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS

GRAFIKA

I1 A laacutetott keacutep felfogaacutesa

Az ember eacutes koumlrnyezete koumlzoumltti kapcsolatban a laacutetaacutes a legfontosabb

informaacutecioacuteszerzeacutesi moacuted rendkiacutevuumlli toumlmoumlrseacutege eacutes oumlsszetettseacutege miatt A

vilaacutegossaacuteg sziacuten alak teacuterbeliseacuteg illetve mozgaacutes egyaraacutent reacutesze annak az oumlsszetett

fizioloacutegiai folyamatnak melyet laacutetaacutesnak nevezuumlnk A szaacutemiacutetoacutegeacutepes keacutepfeldolgozaacutes

sokszor az emberi laacutetaacutest proacutebaacutelja modellezni maacutes esetekben pedig az emberi

laacutetaacutessal kapcsolatos ismereteket hasznaacutelja fel eacutepiacuteti be a feldolgozaacutes folyamataacuteba

Peacuteldakeacutent emliacutethető a JPEG keacuteptoumlmoumlriacutető eljaacuteraacutes amely azt hasznaacutelja ki hogy a

szem nem tud annyi sziacutent egymaacutestoacutel megkuumlloumlnboumlztetni mint amennyit a

szaacutemiacutetoacutegeacutep keacutepes megjeleniacuteteni Egy maacutesik heacutetkoumlznapi peacutelda a televiacutezioacute

keacutepernyőjeacuten laacutetott egymaacutest gyorsan koumlvető aacutelloacutekeacutepeket a szem mozgoacutekeacutepnek

laacutetja

A szemuumlnk recehaacutertyaacutejaacuten keletkező keacutepek keacutetdimenzioacutes siacutekbeli keacutepek

szeacutelesseacuteguumlk eacutes magassaacuteguk van Egy valoacutes taacutergynak amelynek a keacutepeacutet laacutetjuk

meacutelyseacutege is van A magyaraacutezata annak hogy haacuterom dimenzioacuteban laacutetjuk a vilaacutegot

az hogy keacutet szemmel egymaacutestoacutel kicsit elteacuterő keacutepet laacutetunk A retinaacutenkon keletkező

keacutepeket agyunk egyesiacuteti egy teacuterbeli keacuteppeacute

A laacutetaacutes mint tanult keacutepesseacuteg nem fuumlggetlen sem az adott foumlldrajzi

koumlrnyezettől sem az adott kortoacutel Peacuteldaacuteul a kuumlloumlnboumlző iskolaacutezottsaacuteggal rendelkező

afrikaiaknaacutel gyakori volt hogy a vizsgaacutelati anyagkeacutent bemutatott keacutepeket nem

fogtaacutek fel a teacuter aacutebraacutezolaacutesakeacutent szokaacutesos perspektivikus keacutepnek Tehaacutet bizonyosra

vehető hogy a mai euroacutepai kultuacuteraacuten nevelkedett szem szaacutemaacutera a valoacutesaacuteghoz igen

koumlzel aacutelloacute perspektivikus aacutebraacutezolaacutes eacuterteacutese eacutes igeacutenyleacutese tanulaacutes eredmeacutenye

5

I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel

I21 Szemuumlnk feleacutepiacuteteacutese

Szemuumlnk joacute koumlzeliacuteteacutessel 24 mm aacutetmeacuterőjű goumlmb alakuacute test (11 aacutebra)

amelynek eluumllső reacuteszeacuteből kiemelkedik a kisebb goumlrbuumlleti sugaruacute szaruhaacutertya

Haacuterom nevezetes siacutekot lehet megemliacuteteni equator siacutek (első eacutes haacutetsoacute feacuteltekeacutere

osztja a szemet) valamint a viacutezszintes eacutes fuumlggőleges meridiaacuten siacutekok A szem

valamely tulajdonsaacutegai miatt leacutenyeges pontok a szem legelső pontja A (polus

anterior) leghaacutetsoacute pontja B (polus posterior) A rajtuk aacutet huacutezott egyenes egy

főtengelyt alkot ebben metszi egymaacutest a keacutet fő meridiaacuten is Az A B pontokon

aacutetmenő egyenes neve axis bulbi A laacutetaacutes szempontjaacuteboacutel meacutegsem ez a fő tengely

hanem az axis opticus-nak is nevezett egyenes mely a fuumlggőleges meridiaacuten

siacutekjaacuteban van eacutes amely mintegy 5deg-os szoumlgben elteacuter az AB egyenestől Ez nem

maacutes mint a laacutetoacutesugaacuter a laacutetaacutes iraacutenyaacutet kijeloumllő egyenes Az axis opticus haacuterom

nevezetes pontja R az axis opticus doumlfeacutespontja a szem feluumlleteacuten Sr az axis

opticus doumlfeacutespontja az ideghaacutertyaacuten P pedig a szemlencse haacutetsoacute reacuteszeacutenek

koumlzeacuteppontja ez az optikai koumlzeacuteppont Az Sr pont koumlrnyezeteacutenek neve saacutergafolt

maacutesneacuteven fovea centralis

A szemlencse 9 mm aacutetmeacuterőjű vaacuteltoztathatoacute meacutelyseacutegi aacutetmeacuterőjű bikonvex

lencse melynek haacutetsoacute fele domboruacutebb az elsőneacutel Ez rugalmas foacutekusza aacutelliacutethatoacute

Ily moacutedon a beeső feacutenysugarak a kuumlloumlnboumlző taacutevolsaacutegban leacutevő taacutergyakroacutel is eacuteles

keacutepet adhatnak A feacutenysugarak tehaacutet a szaruhaacutertyaacuten a szemcsarnokon eacutes a

szivaacutervaacutenyhaacutertya aacutetlag 4 mm aacutetmeacuterőjű nyiacutelaacutesaacuten a pupillaacuten keresztuumll eacuterik el a

szemlencseacutet Onnan a lencse feacutenytoumlreacuteseacutenek megfelelően moacutedosulva oumlsszetartoacute

sugarakkeacutent az uumlvegtesten aacutet haladva eleacuterik az ideghaacutertyaacutet maacutesneacuteven retinaacutet Az

itt keletkező keacutep fordiacutetott aacutellaacutesuacute tartalmaz sziacuten eacutes toacutenusinformaacutecioacutekat is

Szemuumlnk feleacutepiacuteteacuteseacutet a koumlvetkező oldalon talaacutelhatoacute aacutebra szemleacutelteti

6

7

AB axis bulbi RSTaxis opticusA polus anterior legelső pont R axis opticus eluumllső pontjaB polus posterior leghaacutetsoacute pont ST fovea centralis saacutergafoltP az optikai koumlzeacuteppont S a szem aacuteltal neacutezett pontα feacutenysugaacuter beeseacutesi szoumlge M maacutesik teacuterbeli pontαrsquo feacutenysugaacuter toumlreacutesi szoumlge SM az axis opticusra merőlegesγ az STPMT szoumlg szakaszλ az axis bulbi eacutes a laacutetoacutesugaacuter MT M keacutepe az ideghaacutertyaacuten aacuteltal bezaacutert szoumlg

11 aacutebra

A szem feleacutepiacuteteacutese [4]

I22 A laacutetaacutes alapjai

A laacutetaacutes azon alapul hogy az igen roumlvid hullaacutemhosszuacutesaacuteguacute 380-780 nmndashes

frekvencia tartomaacutenyba eső elektromaacutegneses sugaacuterzaacutes a szemuumlnkben feacutenyeacuterzetet

kelt A szem feacutenyeacuterzeacutekeleacutesi mechanizmusaacutenak leacutenyege a sugaacuterzaacutesi energia

hataacutesaacutera a szem recehaacutertyaacutejaacutenak (retinaacutejaacutenak) idegszaacutelveacutegződeacutesei műkoumldeacutesbe

leacutepnek fizikai-keacutemiai folyamatok indulnak be melyek az agy megfelelő

koumlzpontjaihoz idegingeruumllet formaacutejaacuteban tovaacutebbiacutetoacutednak Keacutet egymaacutestoacutel

kismeacuterteacutekben kuumlloumlnboumlző keacutepet eacuterzeacutekeluumlnk melyek agyunkban teacuterbeli keacutep eacuterzeteacutet

keltik

I23 A visszavert feacuteny eacuterzeacutekeleacutese

A laacutetaacutest (fizikai-optikai oldalroacutel megkoumlzeliacutetve) a feacuteny valamint feacutenyelnyelő-

feacutenytoumlrő - feacutenyvisszaverő testek koumllcsoumlnhataacutesai teszik lehetőveacute Ennek fizikai

alapjai

A szuumlkseacuteges feacutenyt valamilyen elsődleges feacutenyforraacutes biztosiacutetja

A laacutetoacuteteacuter objektumai ndash mint maacutesodlagos feacutenyforraacutesok ndash visszaverik a raacutejuk eső

feacutenyt A visszavert feacuteny valamennyi jellemzője megvaacuteltozik ez a vaacuteltozaacutes

hordozza a laacutetaacuteshoz szuumlkseacuteges informaacutecioacutet

A visszavert feacuteny a szembe jut Az alapvető optikai oumlsszefuumlggeacutesek a szem

műkoumldeacuteseacutere neacutezve is eacuterveacutenyesek A szemnek mint lekeacutepező rendszernek

legfontosabb alkotoacuteeleme a szemlencse

8

Szemuumlnk alakja automatikusan koumlveti a keacutepalkotaacutes igeacutenyeit ezt a tudat alatti

szabaacutelyozaacutest nevezhetjuumlk autoacutefoacutekusznak is A lekeacutepezeacutes eredmeacutenyekeacutent a retina

belső (goumlmb) feluumlleteacuten leacutetrejoumln a fordiacutetott aacutellaacutesuacute keacutep

I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet

segiacutetseacutegeacutevel

A keacutepeacuterzet igen oumlsszetett fizioloacutegiai folyamat melyben a szemen az

ingeruumlletkoumlzvetiacutető idegpaacutelyaacutekon illetve az agy laacutetoacutekoumlzpontjaacuten kiacutevuumll igen nagy

szerepet kap a toumlbbi eacuterzeacutekszerv eacutes az uacuten vizuaacutelis emleacutekezet is Ez utoacutebbi teszi

lehetőveacute a laacutetvaacutenyboacutel hiaacutenyzoacute keacutepreacuteszek poacutetlaacutesaacutet az alakzatok felismereacuteseacutet

9

A laacutetaacutes az oumlsszes eacuterzeacutekelt informaacutecioacutenak toumlbb mint a feleacutet egyes kutatoacutek szerint

akaacuter 90 ndash aacutet is szolgaacuteltatja A kuumlloumlnboumlző eacuterzetek aacuteltalaacuteban keverednek

1egymaacutessal mivel toumlbb eacuterzeacutekszerv egyuumlttes műkoumldeacuteseacutenek eredmeacutenyei

Ugyanerre utal az is hogy a laacutetaacutes mennyire oumlsszefuumlgg a tanulaacutessal

szemuumlnk elvileg a megszuumlleteacutestől kezdve alkalmas lenne a laacutetaacutesban jaacutetszott

szerepeacutenek betoumllteacuteseacutere az uacutejszuumlloumltt azonban eleinte csak homaacutelyos foltokat

eacuteszlel melyek a vizuaacutelis memoacuteria toumlltődeacuteseacutevel a szem mozgataacutesaacutenak

tudatosulaacutesaacuteval vaacutelnak keacutepeacuterzetteacute

I25 Keacutepek lekeacutepzeacutese

Az ingeruumlletek tovaacutebbiacutetaacutesa az agy laacutetoacutekoumlzpontjai feleacute toumlbbszoumlroumls aacutetteacutetelen

keresztuumll igen nagy hibatűreacutessel rendelkező uacuten impulzuskoacuted modulaacutecioacuteval

toumlrteacutenik Nem az oumlsszes receptor jele jut el az idegpaacutelyaacutekon az agyba mivel a kb

126 millioacute receptorra csak kb 1 millioacute idegszaacutel jut Ez a redukcioacute egy retina szintű

előfeldolgozaacutest takar elsősorban az eacutelekre gyors vaacuteltozaacutesokra vonatkozoacute adatok

jutnak a koumlzponti idegrendszerbe A lekeacutepezeacutes időben gyorsan zajloacute folyamat

Agyi parancsra az izmok a szemet (vagy akaacuter az egeacutesz testet) uacutegy mozgatjaacutek

hogy a kiacutevaacutent laacutetvaacuteny leacutetrejoumlhessen

A szemlencse foacutekusztaacutevolsaacutegaacutenak eacutes a pupilla nyiacutelaacutesaacutenak automatikus

vaacuteltoztataacutesa folyamatosan biztosiacutetja az eacuteles keacutepalkotaacutest eacutes a megfelelő

feacutenymennyiseacuteget

I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai

I31 Sziacutenek eacuterzeacutekeleacutese

A receptorok eacuterzeacutekenyseacutege nemcsak a feacuteny erősseacutegeacutetől hanem annak

hullaacutemhosszaacutetoacutel is fuumlgg A laacutetaacutes soraacuten a feacuteny hullaacutemhossz szerinti oumlsszeteacuteteleacutet is

eacuterzeacutekeljuumlk ez a sziacuteneacuterzetben nyilvaacutenul meg A csapocskaacutek melyek a sziacutenlaacutetaacutest

teszik lehetőveacute haacuterom csoportba sorolhatoacutek ezeket eacuterzeacutekenyseacuteguumlk hullaacutemhossz-

fuumlggeacutese kuumlloumlnboumlzteti meg egymaacutestoacutel

10

P tiacutepus 80 nm (voumlroumls)

D tiacutepus 540 nm (zoumlld)

T tiacutepus 440 nm (keacutek)

A retinaacuten a receptorok eloszlaacutesa nem egyenletes a csapocskaacutek elsősorban

a laacutetoacutemező koumlzepeacuten fordulnak elő a paacutelcikaacutek pedig a szeacutelek feleacute ( a paacutelcikaacutek a

vilaacutegossaacuteg eacutes soumlteacutetseacuteg megkuumlloumlnboumlzteteacuteseacuteeacutert felelnek ) Ez a magyaraacutezata

annak hogy sziacutenlaacutetaacutesunk a laacutetoacuteteacuter szeacutele feleacute gyengeacutebb miacuteg a feacutenyerősseacuteg

vaacuteltozaacutesokat a szeacutelek feleacute eacuterzeacutekeljuumlk jobban

Az idegpaacutelyaacutek kileacutepeacutesi helyeacuten az uacuten vakfolton nincsenek receptorok s iacutegy az ide

eső feacuteny nem vesz reacuteszt az eacuterzeacutekeleacutesben Az hogy meacutegis oumlsszefuumlggő keacutepet

laacutetunk agyunk eacutes vizuaacutelis emleacutekezetuumlnk eredmeacutenye A laacutetaacutes eacuterzeacutekenyseacutege

(finomsaacutega reacuteszletgazdagsaacutega) toumlbbfeacutele jellemző egyuumltteseacutetől fuumlgg

a geometriai felbontaacutes azt hataacuterozza meg hogy adott taacutevolsaacutegban egymaacuteshoz

milyen koumlzel leacutevő pontokat tudunk kuumlloumlnaacutelloacute pontokkeacutent eacuteszlelni

az intenzitaacutes-felbontaacutes a feacutenyerősseacuteg-vaacuteltozaacutes eacuterzeacutekeleacuteseacutet

a sziacutenfelbontaacutes pedig a sziacutenaacuternyalatok elkuumlloumlniacuteteacutesi keacutepesseacutegeacutet adja meg

I32 Laacutetaacutesunk időbeli felbontaacutesa

Ez azt jelenti hogy mennyi ideig kell egy laacutetvaacutenynak tartania ahhoz hogy

kuumlloumlnaacutelloacutenak - az előtte eacutes utaacutena koumlvetkező laacutetvaacutenytoacutel kuumlloumlnboumlzőnek - eacuterzeacuteklejuumlk

Tapasztalatok szerint a kb 115 maacutesodpercneacutel roumlvidebb időre bdquobevillanoacuterdquo

keacutepeket nem tudjuk egymaacutestoacutel elkuumlloumlniacutetve eacuterzeacutekelni pontosabban tudatunk

szintjeacuten oumlsszefolynak egymaacutessal (A film eacutes a televiacutezioacute ezt a felbontaacutesi korlaacutetot

hasznaacutelja ki a mozgaacutes eacuterzeteacutenek kelteacuteseacutere a maacutesodpercenkeacutenti 16-25 aacutelloacutekeacutep

megjeleniacuteteacutese szaacutemunkra oumlsszefuumlggő viszonylag villogaacutesmentes mozgoacutekeacutepkeacutent

jelentkezik)

11

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 4: 3D Grafika És Animáció

A szaacutemiacutetoacutegeacutepes aacutebraacutezolaacutes egyik legeacuterdekesebb feladata a mozgoacute keacutepek

keacutesziacuteteacutese Az aacutebraacutezolt alakzat illetve a vetiacuteteacutesi iraacuteny mozgataacutesi keacutepleteinek

ismereteacuteben a feladat megoldaacutesaacutenak nincs elvi akadaacutelya A szaacutemiacutetoacutegeacutep

teljesiacutetőkeacutepesseacutege azonban megszabja a megjeleniacuteteacutesi sebesseacuteg felső hataacuteraacutet eacutes

ezaacuteltal a mozgaacutes laacutetvaacutenyaacutenak eacutelvezhetőseacutegeacutet Bonyolultabb teacuterbeli alakzatok

(uacutejrarajzolaacutessal toumlrteacutenő mozgataacutesa) eseteacuten ez a felső hataacuter eleacuteggeacute alacsony is

lehet Az animaacutecioacutekeacutesziacuteteacutes koumlzponti keacuterdeacutese az egymaacutes utaacuten koumlvetkező keacutepek

egyenletes villogaacutesmentes megjeleniacuteteacutese A keacutepernyőre toumlrteacutenő rajzolaacutest uacutegy kell

megvaloacutesiacutetani hogy a rajzoloacuteprogram akkor kezdje meg a keacutepernyő tetejeacuten leacutevő

sor kirajzolaacutesaacutet amikor a monitor vertikaacutelis elektronsugara befejezte az előző keacutep

megjeleniacuteteacuteseacutet Egy megfelelő teljesiacutetmeacutenyű szaacutemiacutetoacutegeacuteppel eleacuterhetjuumlk azt hogy

mire az elektronsugaacuter ismeacutet a keacutepernyő tetejeacutere keruumll addigra a koumlvetkező

megjeleniacutetendő keacutep a videokaacutertya memoacuteriaacutejaacuteba keruumlljoumln

A ceacutel tehaacutet olyan szaacutemiacutetoacutegeacutepre alkalmazhatoacute algoritmus leacutetrehozaacutesa

amely a lehető legnagyobb meacuterteacutekben igazodik laacutetaacutesunkhoz Ahhoz hogy a

laacutetaacutesunknak ezt a tiacutepusuacute szimulaacutecioacutejaacutet meg tudjuk valoacutesiacutetani meg kell ismerni

szemuumlnk szerkezeteacutet laacutetaacutesunk mechanizmusaacutet eacutes az alkalmazott szoftver

hardver koumlrnyezetet figyelembe veacuteve olyan algoritmust kell előaacutelliacutetanunk amely

ezt szaacutemiacutetoacutegeacutepen modellezi

A bemutatott matematikai modellekre taacutemaszkodoacute 3D Grafika

Szerkesztőprogram v10 [forraacuteskoacutedja a melleacutekletben talaacutelhatoacute] bemutatja a haacuterom

dimenzioacutes grafika eacutes az animaacutecioacute alapelveire taacutemaszkodoacute mechanizmust A

Pascal nyelven iacutert program alapos teacutergeometriai ismeretekkel tovaacutebbfejleszthető

amely keacutepes lehet szeacutelesebb koumlrű hasznaacutelatra Bonyolultabb vetiacutetett keacutepek

testekkeacute alakiacutetaacutesaacuteval majd uacutejboacuteli siacutekra vetiacuteteacuteseacutevel megfelelő peacuteldaacutekkal a program

hasznos segiacutetseacuteg lehet az aacutebraacutezoloacute geometria elsajaacutetiacutetoacuteinak

4

I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS

GRAFIKA

I1 A laacutetott keacutep felfogaacutesa

Az ember eacutes koumlrnyezete koumlzoumltti kapcsolatban a laacutetaacutes a legfontosabb

informaacutecioacuteszerzeacutesi moacuted rendkiacutevuumlli toumlmoumlrseacutege eacutes oumlsszetettseacutege miatt A

vilaacutegossaacuteg sziacuten alak teacuterbeliseacuteg illetve mozgaacutes egyaraacutent reacutesze annak az oumlsszetett

fizioloacutegiai folyamatnak melyet laacutetaacutesnak nevezuumlnk A szaacutemiacutetoacutegeacutepes keacutepfeldolgozaacutes

sokszor az emberi laacutetaacutest proacutebaacutelja modellezni maacutes esetekben pedig az emberi

laacutetaacutessal kapcsolatos ismereteket hasznaacutelja fel eacutepiacuteti be a feldolgozaacutes folyamataacuteba

Peacuteldakeacutent emliacutethető a JPEG keacuteptoumlmoumlriacutető eljaacuteraacutes amely azt hasznaacutelja ki hogy a

szem nem tud annyi sziacutent egymaacutestoacutel megkuumlloumlnboumlztetni mint amennyit a

szaacutemiacutetoacutegeacutep keacutepes megjeleniacuteteni Egy maacutesik heacutetkoumlznapi peacutelda a televiacutezioacute

keacutepernyőjeacuten laacutetott egymaacutest gyorsan koumlvető aacutelloacutekeacutepeket a szem mozgoacutekeacutepnek

laacutetja

A szemuumlnk recehaacutertyaacutejaacuten keletkező keacutepek keacutetdimenzioacutes siacutekbeli keacutepek

szeacutelesseacuteguumlk eacutes magassaacuteguk van Egy valoacutes taacutergynak amelynek a keacutepeacutet laacutetjuk

meacutelyseacutege is van A magyaraacutezata annak hogy haacuterom dimenzioacuteban laacutetjuk a vilaacutegot

az hogy keacutet szemmel egymaacutestoacutel kicsit elteacuterő keacutepet laacutetunk A retinaacutenkon keletkező

keacutepeket agyunk egyesiacuteti egy teacuterbeli keacuteppeacute

A laacutetaacutes mint tanult keacutepesseacuteg nem fuumlggetlen sem az adott foumlldrajzi

koumlrnyezettől sem az adott kortoacutel Peacuteldaacuteul a kuumlloumlnboumlző iskolaacutezottsaacuteggal rendelkező

afrikaiaknaacutel gyakori volt hogy a vizsgaacutelati anyagkeacutent bemutatott keacutepeket nem

fogtaacutek fel a teacuter aacutebraacutezolaacutesakeacutent szokaacutesos perspektivikus keacutepnek Tehaacutet bizonyosra

vehető hogy a mai euroacutepai kultuacuteraacuten nevelkedett szem szaacutemaacutera a valoacutesaacuteghoz igen

koumlzel aacutelloacute perspektivikus aacutebraacutezolaacutes eacuterteacutese eacutes igeacutenyleacutese tanulaacutes eredmeacutenye

5

I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel

I21 Szemuumlnk feleacutepiacuteteacutese

Szemuumlnk joacute koumlzeliacuteteacutessel 24 mm aacutetmeacuterőjű goumlmb alakuacute test (11 aacutebra)

amelynek eluumllső reacuteszeacuteből kiemelkedik a kisebb goumlrbuumlleti sugaruacute szaruhaacutertya

Haacuterom nevezetes siacutekot lehet megemliacuteteni equator siacutek (első eacutes haacutetsoacute feacuteltekeacutere

osztja a szemet) valamint a viacutezszintes eacutes fuumlggőleges meridiaacuten siacutekok A szem

valamely tulajdonsaacutegai miatt leacutenyeges pontok a szem legelső pontja A (polus

anterior) leghaacutetsoacute pontja B (polus posterior) A rajtuk aacutet huacutezott egyenes egy

főtengelyt alkot ebben metszi egymaacutest a keacutet fő meridiaacuten is Az A B pontokon

aacutetmenő egyenes neve axis bulbi A laacutetaacutes szempontjaacuteboacutel meacutegsem ez a fő tengely

hanem az axis opticus-nak is nevezett egyenes mely a fuumlggőleges meridiaacuten

siacutekjaacuteban van eacutes amely mintegy 5deg-os szoumlgben elteacuter az AB egyenestől Ez nem

maacutes mint a laacutetoacutesugaacuter a laacutetaacutes iraacutenyaacutet kijeloumllő egyenes Az axis opticus haacuterom

nevezetes pontja R az axis opticus doumlfeacutespontja a szem feluumlleteacuten Sr az axis

opticus doumlfeacutespontja az ideghaacutertyaacuten P pedig a szemlencse haacutetsoacute reacuteszeacutenek

koumlzeacuteppontja ez az optikai koumlzeacuteppont Az Sr pont koumlrnyezeteacutenek neve saacutergafolt

maacutesneacuteven fovea centralis

A szemlencse 9 mm aacutetmeacuterőjű vaacuteltoztathatoacute meacutelyseacutegi aacutetmeacuterőjű bikonvex

lencse melynek haacutetsoacute fele domboruacutebb az elsőneacutel Ez rugalmas foacutekusza aacutelliacutethatoacute

Ily moacutedon a beeső feacutenysugarak a kuumlloumlnboumlző taacutevolsaacutegban leacutevő taacutergyakroacutel is eacuteles

keacutepet adhatnak A feacutenysugarak tehaacutet a szaruhaacutertyaacuten a szemcsarnokon eacutes a

szivaacutervaacutenyhaacutertya aacutetlag 4 mm aacutetmeacuterőjű nyiacutelaacutesaacuten a pupillaacuten keresztuumll eacuterik el a

szemlencseacutet Onnan a lencse feacutenytoumlreacuteseacutenek megfelelően moacutedosulva oumlsszetartoacute

sugarakkeacutent az uumlvegtesten aacutet haladva eleacuterik az ideghaacutertyaacutet maacutesneacuteven retinaacutet Az

itt keletkező keacutep fordiacutetott aacutellaacutesuacute tartalmaz sziacuten eacutes toacutenusinformaacutecioacutekat is

Szemuumlnk feleacutepiacuteteacuteseacutet a koumlvetkező oldalon talaacutelhatoacute aacutebra szemleacutelteti

6

7

AB axis bulbi RSTaxis opticusA polus anterior legelső pont R axis opticus eluumllső pontjaB polus posterior leghaacutetsoacute pont ST fovea centralis saacutergafoltP az optikai koumlzeacuteppont S a szem aacuteltal neacutezett pontα feacutenysugaacuter beeseacutesi szoumlge M maacutesik teacuterbeli pontαrsquo feacutenysugaacuter toumlreacutesi szoumlge SM az axis opticusra merőlegesγ az STPMT szoumlg szakaszλ az axis bulbi eacutes a laacutetoacutesugaacuter MT M keacutepe az ideghaacutertyaacuten aacuteltal bezaacutert szoumlg

11 aacutebra

A szem feleacutepiacuteteacutese [4]

I22 A laacutetaacutes alapjai

A laacutetaacutes azon alapul hogy az igen roumlvid hullaacutemhosszuacutesaacuteguacute 380-780 nmndashes

frekvencia tartomaacutenyba eső elektromaacutegneses sugaacuterzaacutes a szemuumlnkben feacutenyeacuterzetet

kelt A szem feacutenyeacuterzeacutekeleacutesi mechanizmusaacutenak leacutenyege a sugaacuterzaacutesi energia

hataacutesaacutera a szem recehaacutertyaacutejaacutenak (retinaacutejaacutenak) idegszaacutelveacutegződeacutesei műkoumldeacutesbe

leacutepnek fizikai-keacutemiai folyamatok indulnak be melyek az agy megfelelő

koumlzpontjaihoz idegingeruumllet formaacutejaacuteban tovaacutebbiacutetoacutednak Keacutet egymaacutestoacutel

kismeacuterteacutekben kuumlloumlnboumlző keacutepet eacuterzeacutekeluumlnk melyek agyunkban teacuterbeli keacutep eacuterzeteacutet

keltik

I23 A visszavert feacuteny eacuterzeacutekeleacutese

A laacutetaacutest (fizikai-optikai oldalroacutel megkoumlzeliacutetve) a feacuteny valamint feacutenyelnyelő-

feacutenytoumlrő - feacutenyvisszaverő testek koumllcsoumlnhataacutesai teszik lehetőveacute Ennek fizikai

alapjai

A szuumlkseacuteges feacutenyt valamilyen elsődleges feacutenyforraacutes biztosiacutetja

A laacutetoacuteteacuter objektumai ndash mint maacutesodlagos feacutenyforraacutesok ndash visszaverik a raacutejuk eső

feacutenyt A visszavert feacuteny valamennyi jellemzője megvaacuteltozik ez a vaacuteltozaacutes

hordozza a laacutetaacuteshoz szuumlkseacuteges informaacutecioacutet

A visszavert feacuteny a szembe jut Az alapvető optikai oumlsszefuumlggeacutesek a szem

műkoumldeacuteseacutere neacutezve is eacuterveacutenyesek A szemnek mint lekeacutepező rendszernek

legfontosabb alkotoacuteeleme a szemlencse

8

Szemuumlnk alakja automatikusan koumlveti a keacutepalkotaacutes igeacutenyeit ezt a tudat alatti

szabaacutelyozaacutest nevezhetjuumlk autoacutefoacutekusznak is A lekeacutepezeacutes eredmeacutenyekeacutent a retina

belső (goumlmb) feluumlleteacuten leacutetrejoumln a fordiacutetott aacutellaacutesuacute keacutep

I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet

segiacutetseacutegeacutevel

A keacutepeacuterzet igen oumlsszetett fizioloacutegiai folyamat melyben a szemen az

ingeruumlletkoumlzvetiacutető idegpaacutelyaacutekon illetve az agy laacutetoacutekoumlzpontjaacuten kiacutevuumll igen nagy

szerepet kap a toumlbbi eacuterzeacutekszerv eacutes az uacuten vizuaacutelis emleacutekezet is Ez utoacutebbi teszi

lehetőveacute a laacutetvaacutenyboacutel hiaacutenyzoacute keacutepreacuteszek poacutetlaacutesaacutet az alakzatok felismereacuteseacutet

9

A laacutetaacutes az oumlsszes eacuterzeacutekelt informaacutecioacutenak toumlbb mint a feleacutet egyes kutatoacutek szerint

akaacuter 90 ndash aacutet is szolgaacuteltatja A kuumlloumlnboumlző eacuterzetek aacuteltalaacuteban keverednek

1egymaacutessal mivel toumlbb eacuterzeacutekszerv egyuumlttes műkoumldeacuteseacutenek eredmeacutenyei

Ugyanerre utal az is hogy a laacutetaacutes mennyire oumlsszefuumlgg a tanulaacutessal

szemuumlnk elvileg a megszuumlleteacutestől kezdve alkalmas lenne a laacutetaacutesban jaacutetszott

szerepeacutenek betoumllteacuteseacutere az uacutejszuumlloumltt azonban eleinte csak homaacutelyos foltokat

eacuteszlel melyek a vizuaacutelis memoacuteria toumlltődeacuteseacutevel a szem mozgataacutesaacutenak

tudatosulaacutesaacuteval vaacutelnak keacutepeacuterzetteacute

I25 Keacutepek lekeacutepzeacutese

Az ingeruumlletek tovaacutebbiacutetaacutesa az agy laacutetoacutekoumlzpontjai feleacute toumlbbszoumlroumls aacutetteacutetelen

keresztuumll igen nagy hibatűreacutessel rendelkező uacuten impulzuskoacuted modulaacutecioacuteval

toumlrteacutenik Nem az oumlsszes receptor jele jut el az idegpaacutelyaacutekon az agyba mivel a kb

126 millioacute receptorra csak kb 1 millioacute idegszaacutel jut Ez a redukcioacute egy retina szintű

előfeldolgozaacutest takar elsősorban az eacutelekre gyors vaacuteltozaacutesokra vonatkozoacute adatok

jutnak a koumlzponti idegrendszerbe A lekeacutepezeacutes időben gyorsan zajloacute folyamat

Agyi parancsra az izmok a szemet (vagy akaacuter az egeacutesz testet) uacutegy mozgatjaacutek

hogy a kiacutevaacutent laacutetvaacuteny leacutetrejoumlhessen

A szemlencse foacutekusztaacutevolsaacutegaacutenak eacutes a pupilla nyiacutelaacutesaacutenak automatikus

vaacuteltoztataacutesa folyamatosan biztosiacutetja az eacuteles keacutepalkotaacutest eacutes a megfelelő

feacutenymennyiseacuteget

I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai

I31 Sziacutenek eacuterzeacutekeleacutese

A receptorok eacuterzeacutekenyseacutege nemcsak a feacuteny erősseacutegeacutetől hanem annak

hullaacutemhosszaacutetoacutel is fuumlgg A laacutetaacutes soraacuten a feacuteny hullaacutemhossz szerinti oumlsszeteacuteteleacutet is

eacuterzeacutekeljuumlk ez a sziacuteneacuterzetben nyilvaacutenul meg A csapocskaacutek melyek a sziacutenlaacutetaacutest

teszik lehetőveacute haacuterom csoportba sorolhatoacutek ezeket eacuterzeacutekenyseacuteguumlk hullaacutemhossz-

fuumlggeacutese kuumlloumlnboumlzteti meg egymaacutestoacutel

10

P tiacutepus 80 nm (voumlroumls)

D tiacutepus 540 nm (zoumlld)

T tiacutepus 440 nm (keacutek)

A retinaacuten a receptorok eloszlaacutesa nem egyenletes a csapocskaacutek elsősorban

a laacutetoacutemező koumlzepeacuten fordulnak elő a paacutelcikaacutek pedig a szeacutelek feleacute ( a paacutelcikaacutek a

vilaacutegossaacuteg eacutes soumlteacutetseacuteg megkuumlloumlnboumlzteteacuteseacuteeacutert felelnek ) Ez a magyaraacutezata

annak hogy sziacutenlaacutetaacutesunk a laacutetoacuteteacuter szeacutele feleacute gyengeacutebb miacuteg a feacutenyerősseacuteg

vaacuteltozaacutesokat a szeacutelek feleacute eacuterzeacutekeljuumlk jobban

Az idegpaacutelyaacutek kileacutepeacutesi helyeacuten az uacuten vakfolton nincsenek receptorok s iacutegy az ide

eső feacuteny nem vesz reacuteszt az eacuterzeacutekeleacutesben Az hogy meacutegis oumlsszefuumlggő keacutepet

laacutetunk agyunk eacutes vizuaacutelis emleacutekezetuumlnk eredmeacutenye A laacutetaacutes eacuterzeacutekenyseacutege

(finomsaacutega reacuteszletgazdagsaacutega) toumlbbfeacutele jellemző egyuumltteseacutetől fuumlgg

a geometriai felbontaacutes azt hataacuterozza meg hogy adott taacutevolsaacutegban egymaacuteshoz

milyen koumlzel leacutevő pontokat tudunk kuumlloumlnaacutelloacute pontokkeacutent eacuteszlelni

az intenzitaacutes-felbontaacutes a feacutenyerősseacuteg-vaacuteltozaacutes eacuterzeacutekeleacuteseacutet

a sziacutenfelbontaacutes pedig a sziacutenaacuternyalatok elkuumlloumlniacuteteacutesi keacutepesseacutegeacutet adja meg

I32 Laacutetaacutesunk időbeli felbontaacutesa

Ez azt jelenti hogy mennyi ideig kell egy laacutetvaacutenynak tartania ahhoz hogy

kuumlloumlnaacutelloacutenak - az előtte eacutes utaacutena koumlvetkező laacutetvaacutenytoacutel kuumlloumlnboumlzőnek - eacuterzeacuteklejuumlk

Tapasztalatok szerint a kb 115 maacutesodpercneacutel roumlvidebb időre bdquobevillanoacuterdquo

keacutepeket nem tudjuk egymaacutestoacutel elkuumlloumlniacutetve eacuterzeacutekelni pontosabban tudatunk

szintjeacuten oumlsszefolynak egymaacutessal (A film eacutes a televiacutezioacute ezt a felbontaacutesi korlaacutetot

hasznaacutelja ki a mozgaacutes eacuterzeteacutenek kelteacuteseacutere a maacutesodpercenkeacutenti 16-25 aacutelloacutekeacutep

megjeleniacuteteacutese szaacutemunkra oumlsszefuumlggő viszonylag villogaacutesmentes mozgoacutekeacutepkeacutent

jelentkezik)

11

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 5: 3D Grafika És Animáció

I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS

GRAFIKA

I1 A laacutetott keacutep felfogaacutesa

Az ember eacutes koumlrnyezete koumlzoumltti kapcsolatban a laacutetaacutes a legfontosabb

informaacutecioacuteszerzeacutesi moacuted rendkiacutevuumlli toumlmoumlrseacutege eacutes oumlsszetettseacutege miatt A

vilaacutegossaacuteg sziacuten alak teacuterbeliseacuteg illetve mozgaacutes egyaraacutent reacutesze annak az oumlsszetett

fizioloacutegiai folyamatnak melyet laacutetaacutesnak nevezuumlnk A szaacutemiacutetoacutegeacutepes keacutepfeldolgozaacutes

sokszor az emberi laacutetaacutest proacutebaacutelja modellezni maacutes esetekben pedig az emberi

laacutetaacutessal kapcsolatos ismereteket hasznaacutelja fel eacutepiacuteti be a feldolgozaacutes folyamataacuteba

Peacuteldakeacutent emliacutethető a JPEG keacuteptoumlmoumlriacutető eljaacuteraacutes amely azt hasznaacutelja ki hogy a

szem nem tud annyi sziacutent egymaacutestoacutel megkuumlloumlnboumlztetni mint amennyit a

szaacutemiacutetoacutegeacutep keacutepes megjeleniacuteteni Egy maacutesik heacutetkoumlznapi peacutelda a televiacutezioacute

keacutepernyőjeacuten laacutetott egymaacutest gyorsan koumlvető aacutelloacutekeacutepeket a szem mozgoacutekeacutepnek

laacutetja

A szemuumlnk recehaacutertyaacutejaacuten keletkező keacutepek keacutetdimenzioacutes siacutekbeli keacutepek

szeacutelesseacuteguumlk eacutes magassaacuteguk van Egy valoacutes taacutergynak amelynek a keacutepeacutet laacutetjuk

meacutelyseacutege is van A magyaraacutezata annak hogy haacuterom dimenzioacuteban laacutetjuk a vilaacutegot

az hogy keacutet szemmel egymaacutestoacutel kicsit elteacuterő keacutepet laacutetunk A retinaacutenkon keletkező

keacutepeket agyunk egyesiacuteti egy teacuterbeli keacuteppeacute

A laacutetaacutes mint tanult keacutepesseacuteg nem fuumlggetlen sem az adott foumlldrajzi

koumlrnyezettől sem az adott kortoacutel Peacuteldaacuteul a kuumlloumlnboumlző iskolaacutezottsaacuteggal rendelkező

afrikaiaknaacutel gyakori volt hogy a vizsgaacutelati anyagkeacutent bemutatott keacutepeket nem

fogtaacutek fel a teacuter aacutebraacutezolaacutesakeacutent szokaacutesos perspektivikus keacutepnek Tehaacutet bizonyosra

vehető hogy a mai euroacutepai kultuacuteraacuten nevelkedett szem szaacutemaacutera a valoacutesaacuteghoz igen

koumlzel aacutelloacute perspektivikus aacutebraacutezolaacutes eacuterteacutese eacutes igeacutenyleacutese tanulaacutes eredmeacutenye

5

I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel

I21 Szemuumlnk feleacutepiacuteteacutese

Szemuumlnk joacute koumlzeliacuteteacutessel 24 mm aacutetmeacuterőjű goumlmb alakuacute test (11 aacutebra)

amelynek eluumllső reacuteszeacuteből kiemelkedik a kisebb goumlrbuumlleti sugaruacute szaruhaacutertya

Haacuterom nevezetes siacutekot lehet megemliacuteteni equator siacutek (első eacutes haacutetsoacute feacuteltekeacutere

osztja a szemet) valamint a viacutezszintes eacutes fuumlggőleges meridiaacuten siacutekok A szem

valamely tulajdonsaacutegai miatt leacutenyeges pontok a szem legelső pontja A (polus

anterior) leghaacutetsoacute pontja B (polus posterior) A rajtuk aacutet huacutezott egyenes egy

főtengelyt alkot ebben metszi egymaacutest a keacutet fő meridiaacuten is Az A B pontokon

aacutetmenő egyenes neve axis bulbi A laacutetaacutes szempontjaacuteboacutel meacutegsem ez a fő tengely

hanem az axis opticus-nak is nevezett egyenes mely a fuumlggőleges meridiaacuten

siacutekjaacuteban van eacutes amely mintegy 5deg-os szoumlgben elteacuter az AB egyenestől Ez nem

maacutes mint a laacutetoacutesugaacuter a laacutetaacutes iraacutenyaacutet kijeloumllő egyenes Az axis opticus haacuterom

nevezetes pontja R az axis opticus doumlfeacutespontja a szem feluumlleteacuten Sr az axis

opticus doumlfeacutespontja az ideghaacutertyaacuten P pedig a szemlencse haacutetsoacute reacuteszeacutenek

koumlzeacuteppontja ez az optikai koumlzeacuteppont Az Sr pont koumlrnyezeteacutenek neve saacutergafolt

maacutesneacuteven fovea centralis

A szemlencse 9 mm aacutetmeacuterőjű vaacuteltoztathatoacute meacutelyseacutegi aacutetmeacuterőjű bikonvex

lencse melynek haacutetsoacute fele domboruacutebb az elsőneacutel Ez rugalmas foacutekusza aacutelliacutethatoacute

Ily moacutedon a beeső feacutenysugarak a kuumlloumlnboumlző taacutevolsaacutegban leacutevő taacutergyakroacutel is eacuteles

keacutepet adhatnak A feacutenysugarak tehaacutet a szaruhaacutertyaacuten a szemcsarnokon eacutes a

szivaacutervaacutenyhaacutertya aacutetlag 4 mm aacutetmeacuterőjű nyiacutelaacutesaacuten a pupillaacuten keresztuumll eacuterik el a

szemlencseacutet Onnan a lencse feacutenytoumlreacuteseacutenek megfelelően moacutedosulva oumlsszetartoacute

sugarakkeacutent az uumlvegtesten aacutet haladva eleacuterik az ideghaacutertyaacutet maacutesneacuteven retinaacutet Az

itt keletkező keacutep fordiacutetott aacutellaacutesuacute tartalmaz sziacuten eacutes toacutenusinformaacutecioacutekat is

Szemuumlnk feleacutepiacuteteacuteseacutet a koumlvetkező oldalon talaacutelhatoacute aacutebra szemleacutelteti

6

7

AB axis bulbi RSTaxis opticusA polus anterior legelső pont R axis opticus eluumllső pontjaB polus posterior leghaacutetsoacute pont ST fovea centralis saacutergafoltP az optikai koumlzeacuteppont S a szem aacuteltal neacutezett pontα feacutenysugaacuter beeseacutesi szoumlge M maacutesik teacuterbeli pontαrsquo feacutenysugaacuter toumlreacutesi szoumlge SM az axis opticusra merőlegesγ az STPMT szoumlg szakaszλ az axis bulbi eacutes a laacutetoacutesugaacuter MT M keacutepe az ideghaacutertyaacuten aacuteltal bezaacutert szoumlg

11 aacutebra

A szem feleacutepiacuteteacutese [4]

I22 A laacutetaacutes alapjai

A laacutetaacutes azon alapul hogy az igen roumlvid hullaacutemhosszuacutesaacuteguacute 380-780 nmndashes

frekvencia tartomaacutenyba eső elektromaacutegneses sugaacuterzaacutes a szemuumlnkben feacutenyeacuterzetet

kelt A szem feacutenyeacuterzeacutekeleacutesi mechanizmusaacutenak leacutenyege a sugaacuterzaacutesi energia

hataacutesaacutera a szem recehaacutertyaacutejaacutenak (retinaacutejaacutenak) idegszaacutelveacutegződeacutesei műkoumldeacutesbe

leacutepnek fizikai-keacutemiai folyamatok indulnak be melyek az agy megfelelő

koumlzpontjaihoz idegingeruumllet formaacutejaacuteban tovaacutebbiacutetoacutednak Keacutet egymaacutestoacutel

kismeacuterteacutekben kuumlloumlnboumlző keacutepet eacuterzeacutekeluumlnk melyek agyunkban teacuterbeli keacutep eacuterzeteacutet

keltik

I23 A visszavert feacuteny eacuterzeacutekeleacutese

A laacutetaacutest (fizikai-optikai oldalroacutel megkoumlzeliacutetve) a feacuteny valamint feacutenyelnyelő-

feacutenytoumlrő - feacutenyvisszaverő testek koumllcsoumlnhataacutesai teszik lehetőveacute Ennek fizikai

alapjai

A szuumlkseacuteges feacutenyt valamilyen elsődleges feacutenyforraacutes biztosiacutetja

A laacutetoacuteteacuter objektumai ndash mint maacutesodlagos feacutenyforraacutesok ndash visszaverik a raacutejuk eső

feacutenyt A visszavert feacuteny valamennyi jellemzője megvaacuteltozik ez a vaacuteltozaacutes

hordozza a laacutetaacuteshoz szuumlkseacuteges informaacutecioacutet

A visszavert feacuteny a szembe jut Az alapvető optikai oumlsszefuumlggeacutesek a szem

műkoumldeacuteseacutere neacutezve is eacuterveacutenyesek A szemnek mint lekeacutepező rendszernek

legfontosabb alkotoacuteeleme a szemlencse

8

Szemuumlnk alakja automatikusan koumlveti a keacutepalkotaacutes igeacutenyeit ezt a tudat alatti

szabaacutelyozaacutest nevezhetjuumlk autoacutefoacutekusznak is A lekeacutepezeacutes eredmeacutenyekeacutent a retina

belső (goumlmb) feluumlleteacuten leacutetrejoumln a fordiacutetott aacutellaacutesuacute keacutep

I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet

segiacutetseacutegeacutevel

A keacutepeacuterzet igen oumlsszetett fizioloacutegiai folyamat melyben a szemen az

ingeruumlletkoumlzvetiacutető idegpaacutelyaacutekon illetve az agy laacutetoacutekoumlzpontjaacuten kiacutevuumll igen nagy

szerepet kap a toumlbbi eacuterzeacutekszerv eacutes az uacuten vizuaacutelis emleacutekezet is Ez utoacutebbi teszi

lehetőveacute a laacutetvaacutenyboacutel hiaacutenyzoacute keacutepreacuteszek poacutetlaacutesaacutet az alakzatok felismereacuteseacutet

9

A laacutetaacutes az oumlsszes eacuterzeacutekelt informaacutecioacutenak toumlbb mint a feleacutet egyes kutatoacutek szerint

akaacuter 90 ndash aacutet is szolgaacuteltatja A kuumlloumlnboumlző eacuterzetek aacuteltalaacuteban keverednek

1egymaacutessal mivel toumlbb eacuterzeacutekszerv egyuumlttes műkoumldeacuteseacutenek eredmeacutenyei

Ugyanerre utal az is hogy a laacutetaacutes mennyire oumlsszefuumlgg a tanulaacutessal

szemuumlnk elvileg a megszuumlleteacutestől kezdve alkalmas lenne a laacutetaacutesban jaacutetszott

szerepeacutenek betoumllteacuteseacutere az uacutejszuumlloumltt azonban eleinte csak homaacutelyos foltokat

eacuteszlel melyek a vizuaacutelis memoacuteria toumlltődeacuteseacutevel a szem mozgataacutesaacutenak

tudatosulaacutesaacuteval vaacutelnak keacutepeacuterzetteacute

I25 Keacutepek lekeacutepzeacutese

Az ingeruumlletek tovaacutebbiacutetaacutesa az agy laacutetoacutekoumlzpontjai feleacute toumlbbszoumlroumls aacutetteacutetelen

keresztuumll igen nagy hibatűreacutessel rendelkező uacuten impulzuskoacuted modulaacutecioacuteval

toumlrteacutenik Nem az oumlsszes receptor jele jut el az idegpaacutelyaacutekon az agyba mivel a kb

126 millioacute receptorra csak kb 1 millioacute idegszaacutel jut Ez a redukcioacute egy retina szintű

előfeldolgozaacutest takar elsősorban az eacutelekre gyors vaacuteltozaacutesokra vonatkozoacute adatok

jutnak a koumlzponti idegrendszerbe A lekeacutepezeacutes időben gyorsan zajloacute folyamat

Agyi parancsra az izmok a szemet (vagy akaacuter az egeacutesz testet) uacutegy mozgatjaacutek

hogy a kiacutevaacutent laacutetvaacuteny leacutetrejoumlhessen

A szemlencse foacutekusztaacutevolsaacutegaacutenak eacutes a pupilla nyiacutelaacutesaacutenak automatikus

vaacuteltoztataacutesa folyamatosan biztosiacutetja az eacuteles keacutepalkotaacutest eacutes a megfelelő

feacutenymennyiseacuteget

I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai

I31 Sziacutenek eacuterzeacutekeleacutese

A receptorok eacuterzeacutekenyseacutege nemcsak a feacuteny erősseacutegeacutetől hanem annak

hullaacutemhosszaacutetoacutel is fuumlgg A laacutetaacutes soraacuten a feacuteny hullaacutemhossz szerinti oumlsszeteacuteteleacutet is

eacuterzeacutekeljuumlk ez a sziacuteneacuterzetben nyilvaacutenul meg A csapocskaacutek melyek a sziacutenlaacutetaacutest

teszik lehetőveacute haacuterom csoportba sorolhatoacutek ezeket eacuterzeacutekenyseacuteguumlk hullaacutemhossz-

fuumlggeacutese kuumlloumlnboumlzteti meg egymaacutestoacutel

10

P tiacutepus 80 nm (voumlroumls)

D tiacutepus 540 nm (zoumlld)

T tiacutepus 440 nm (keacutek)

A retinaacuten a receptorok eloszlaacutesa nem egyenletes a csapocskaacutek elsősorban

a laacutetoacutemező koumlzepeacuten fordulnak elő a paacutelcikaacutek pedig a szeacutelek feleacute ( a paacutelcikaacutek a

vilaacutegossaacuteg eacutes soumlteacutetseacuteg megkuumlloumlnboumlzteteacuteseacuteeacutert felelnek ) Ez a magyaraacutezata

annak hogy sziacutenlaacutetaacutesunk a laacutetoacuteteacuter szeacutele feleacute gyengeacutebb miacuteg a feacutenyerősseacuteg

vaacuteltozaacutesokat a szeacutelek feleacute eacuterzeacutekeljuumlk jobban

Az idegpaacutelyaacutek kileacutepeacutesi helyeacuten az uacuten vakfolton nincsenek receptorok s iacutegy az ide

eső feacuteny nem vesz reacuteszt az eacuterzeacutekeleacutesben Az hogy meacutegis oumlsszefuumlggő keacutepet

laacutetunk agyunk eacutes vizuaacutelis emleacutekezetuumlnk eredmeacutenye A laacutetaacutes eacuterzeacutekenyseacutege

(finomsaacutega reacuteszletgazdagsaacutega) toumlbbfeacutele jellemző egyuumltteseacutetől fuumlgg

a geometriai felbontaacutes azt hataacuterozza meg hogy adott taacutevolsaacutegban egymaacuteshoz

milyen koumlzel leacutevő pontokat tudunk kuumlloumlnaacutelloacute pontokkeacutent eacuteszlelni

az intenzitaacutes-felbontaacutes a feacutenyerősseacuteg-vaacuteltozaacutes eacuterzeacutekeleacuteseacutet

a sziacutenfelbontaacutes pedig a sziacutenaacuternyalatok elkuumlloumlniacuteteacutesi keacutepesseacutegeacutet adja meg

I32 Laacutetaacutesunk időbeli felbontaacutesa

Ez azt jelenti hogy mennyi ideig kell egy laacutetvaacutenynak tartania ahhoz hogy

kuumlloumlnaacutelloacutenak - az előtte eacutes utaacutena koumlvetkező laacutetvaacutenytoacutel kuumlloumlnboumlzőnek - eacuterzeacuteklejuumlk

Tapasztalatok szerint a kb 115 maacutesodpercneacutel roumlvidebb időre bdquobevillanoacuterdquo

keacutepeket nem tudjuk egymaacutestoacutel elkuumlloumlniacutetve eacuterzeacutekelni pontosabban tudatunk

szintjeacuten oumlsszefolynak egymaacutessal (A film eacutes a televiacutezioacute ezt a felbontaacutesi korlaacutetot

hasznaacutelja ki a mozgaacutes eacuterzeteacutenek kelteacuteseacutere a maacutesodpercenkeacutenti 16-25 aacutelloacutekeacutep

megjeleniacuteteacutese szaacutemunkra oumlsszefuumlggő viszonylag villogaacutesmentes mozgoacutekeacutepkeacutent

jelentkezik)

11

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 6: 3D Grafika És Animáció

I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel

I21 Szemuumlnk feleacutepiacuteteacutese

Szemuumlnk joacute koumlzeliacuteteacutessel 24 mm aacutetmeacuterőjű goumlmb alakuacute test (11 aacutebra)

amelynek eluumllső reacuteszeacuteből kiemelkedik a kisebb goumlrbuumlleti sugaruacute szaruhaacutertya

Haacuterom nevezetes siacutekot lehet megemliacuteteni equator siacutek (első eacutes haacutetsoacute feacuteltekeacutere

osztja a szemet) valamint a viacutezszintes eacutes fuumlggőleges meridiaacuten siacutekok A szem

valamely tulajdonsaacutegai miatt leacutenyeges pontok a szem legelső pontja A (polus

anterior) leghaacutetsoacute pontja B (polus posterior) A rajtuk aacutet huacutezott egyenes egy

főtengelyt alkot ebben metszi egymaacutest a keacutet fő meridiaacuten is Az A B pontokon

aacutetmenő egyenes neve axis bulbi A laacutetaacutes szempontjaacuteboacutel meacutegsem ez a fő tengely

hanem az axis opticus-nak is nevezett egyenes mely a fuumlggőleges meridiaacuten

siacutekjaacuteban van eacutes amely mintegy 5deg-os szoumlgben elteacuter az AB egyenestől Ez nem

maacutes mint a laacutetoacutesugaacuter a laacutetaacutes iraacutenyaacutet kijeloumllő egyenes Az axis opticus haacuterom

nevezetes pontja R az axis opticus doumlfeacutespontja a szem feluumlleteacuten Sr az axis

opticus doumlfeacutespontja az ideghaacutertyaacuten P pedig a szemlencse haacutetsoacute reacuteszeacutenek

koumlzeacuteppontja ez az optikai koumlzeacuteppont Az Sr pont koumlrnyezeteacutenek neve saacutergafolt

maacutesneacuteven fovea centralis

A szemlencse 9 mm aacutetmeacuterőjű vaacuteltoztathatoacute meacutelyseacutegi aacutetmeacuterőjű bikonvex

lencse melynek haacutetsoacute fele domboruacutebb az elsőneacutel Ez rugalmas foacutekusza aacutelliacutethatoacute

Ily moacutedon a beeső feacutenysugarak a kuumlloumlnboumlző taacutevolsaacutegban leacutevő taacutergyakroacutel is eacuteles

keacutepet adhatnak A feacutenysugarak tehaacutet a szaruhaacutertyaacuten a szemcsarnokon eacutes a

szivaacutervaacutenyhaacutertya aacutetlag 4 mm aacutetmeacuterőjű nyiacutelaacutesaacuten a pupillaacuten keresztuumll eacuterik el a

szemlencseacutet Onnan a lencse feacutenytoumlreacuteseacutenek megfelelően moacutedosulva oumlsszetartoacute

sugarakkeacutent az uumlvegtesten aacutet haladva eleacuterik az ideghaacutertyaacutet maacutesneacuteven retinaacutet Az

itt keletkező keacutep fordiacutetott aacutellaacutesuacute tartalmaz sziacuten eacutes toacutenusinformaacutecioacutekat is

Szemuumlnk feleacutepiacuteteacuteseacutet a koumlvetkező oldalon talaacutelhatoacute aacutebra szemleacutelteti

6

7

AB axis bulbi RSTaxis opticusA polus anterior legelső pont R axis opticus eluumllső pontjaB polus posterior leghaacutetsoacute pont ST fovea centralis saacutergafoltP az optikai koumlzeacuteppont S a szem aacuteltal neacutezett pontα feacutenysugaacuter beeseacutesi szoumlge M maacutesik teacuterbeli pontαrsquo feacutenysugaacuter toumlreacutesi szoumlge SM az axis opticusra merőlegesγ az STPMT szoumlg szakaszλ az axis bulbi eacutes a laacutetoacutesugaacuter MT M keacutepe az ideghaacutertyaacuten aacuteltal bezaacutert szoumlg

11 aacutebra

A szem feleacutepiacuteteacutese [4]

I22 A laacutetaacutes alapjai

A laacutetaacutes azon alapul hogy az igen roumlvid hullaacutemhosszuacutesaacuteguacute 380-780 nmndashes

frekvencia tartomaacutenyba eső elektromaacutegneses sugaacuterzaacutes a szemuumlnkben feacutenyeacuterzetet

kelt A szem feacutenyeacuterzeacutekeleacutesi mechanizmusaacutenak leacutenyege a sugaacuterzaacutesi energia

hataacutesaacutera a szem recehaacutertyaacutejaacutenak (retinaacutejaacutenak) idegszaacutelveacutegződeacutesei műkoumldeacutesbe

leacutepnek fizikai-keacutemiai folyamatok indulnak be melyek az agy megfelelő

koumlzpontjaihoz idegingeruumllet formaacutejaacuteban tovaacutebbiacutetoacutednak Keacutet egymaacutestoacutel

kismeacuterteacutekben kuumlloumlnboumlző keacutepet eacuterzeacutekeluumlnk melyek agyunkban teacuterbeli keacutep eacuterzeteacutet

keltik

I23 A visszavert feacuteny eacuterzeacutekeleacutese

A laacutetaacutest (fizikai-optikai oldalroacutel megkoumlzeliacutetve) a feacuteny valamint feacutenyelnyelő-

feacutenytoumlrő - feacutenyvisszaverő testek koumllcsoumlnhataacutesai teszik lehetőveacute Ennek fizikai

alapjai

A szuumlkseacuteges feacutenyt valamilyen elsődleges feacutenyforraacutes biztosiacutetja

A laacutetoacuteteacuter objektumai ndash mint maacutesodlagos feacutenyforraacutesok ndash visszaverik a raacutejuk eső

feacutenyt A visszavert feacuteny valamennyi jellemzője megvaacuteltozik ez a vaacuteltozaacutes

hordozza a laacutetaacuteshoz szuumlkseacuteges informaacutecioacutet

A visszavert feacuteny a szembe jut Az alapvető optikai oumlsszefuumlggeacutesek a szem

műkoumldeacuteseacutere neacutezve is eacuterveacutenyesek A szemnek mint lekeacutepező rendszernek

legfontosabb alkotoacuteeleme a szemlencse

8

Szemuumlnk alakja automatikusan koumlveti a keacutepalkotaacutes igeacutenyeit ezt a tudat alatti

szabaacutelyozaacutest nevezhetjuumlk autoacutefoacutekusznak is A lekeacutepezeacutes eredmeacutenyekeacutent a retina

belső (goumlmb) feluumlleteacuten leacutetrejoumln a fordiacutetott aacutellaacutesuacute keacutep

I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet

segiacutetseacutegeacutevel

A keacutepeacuterzet igen oumlsszetett fizioloacutegiai folyamat melyben a szemen az

ingeruumlletkoumlzvetiacutető idegpaacutelyaacutekon illetve az agy laacutetoacutekoumlzpontjaacuten kiacutevuumll igen nagy

szerepet kap a toumlbbi eacuterzeacutekszerv eacutes az uacuten vizuaacutelis emleacutekezet is Ez utoacutebbi teszi

lehetőveacute a laacutetvaacutenyboacutel hiaacutenyzoacute keacutepreacuteszek poacutetlaacutesaacutet az alakzatok felismereacuteseacutet

9

A laacutetaacutes az oumlsszes eacuterzeacutekelt informaacutecioacutenak toumlbb mint a feleacutet egyes kutatoacutek szerint

akaacuter 90 ndash aacutet is szolgaacuteltatja A kuumlloumlnboumlző eacuterzetek aacuteltalaacuteban keverednek

1egymaacutessal mivel toumlbb eacuterzeacutekszerv egyuumlttes műkoumldeacuteseacutenek eredmeacutenyei

Ugyanerre utal az is hogy a laacutetaacutes mennyire oumlsszefuumlgg a tanulaacutessal

szemuumlnk elvileg a megszuumlleteacutestől kezdve alkalmas lenne a laacutetaacutesban jaacutetszott

szerepeacutenek betoumllteacuteseacutere az uacutejszuumlloumltt azonban eleinte csak homaacutelyos foltokat

eacuteszlel melyek a vizuaacutelis memoacuteria toumlltődeacuteseacutevel a szem mozgataacutesaacutenak

tudatosulaacutesaacuteval vaacutelnak keacutepeacuterzetteacute

I25 Keacutepek lekeacutepzeacutese

Az ingeruumlletek tovaacutebbiacutetaacutesa az agy laacutetoacutekoumlzpontjai feleacute toumlbbszoumlroumls aacutetteacutetelen

keresztuumll igen nagy hibatűreacutessel rendelkező uacuten impulzuskoacuted modulaacutecioacuteval

toumlrteacutenik Nem az oumlsszes receptor jele jut el az idegpaacutelyaacutekon az agyba mivel a kb

126 millioacute receptorra csak kb 1 millioacute idegszaacutel jut Ez a redukcioacute egy retina szintű

előfeldolgozaacutest takar elsősorban az eacutelekre gyors vaacuteltozaacutesokra vonatkozoacute adatok

jutnak a koumlzponti idegrendszerbe A lekeacutepezeacutes időben gyorsan zajloacute folyamat

Agyi parancsra az izmok a szemet (vagy akaacuter az egeacutesz testet) uacutegy mozgatjaacutek

hogy a kiacutevaacutent laacutetvaacuteny leacutetrejoumlhessen

A szemlencse foacutekusztaacutevolsaacutegaacutenak eacutes a pupilla nyiacutelaacutesaacutenak automatikus

vaacuteltoztataacutesa folyamatosan biztosiacutetja az eacuteles keacutepalkotaacutest eacutes a megfelelő

feacutenymennyiseacuteget

I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai

I31 Sziacutenek eacuterzeacutekeleacutese

A receptorok eacuterzeacutekenyseacutege nemcsak a feacuteny erősseacutegeacutetől hanem annak

hullaacutemhosszaacutetoacutel is fuumlgg A laacutetaacutes soraacuten a feacuteny hullaacutemhossz szerinti oumlsszeteacuteteleacutet is

eacuterzeacutekeljuumlk ez a sziacuteneacuterzetben nyilvaacutenul meg A csapocskaacutek melyek a sziacutenlaacutetaacutest

teszik lehetőveacute haacuterom csoportba sorolhatoacutek ezeket eacuterzeacutekenyseacuteguumlk hullaacutemhossz-

fuumlggeacutese kuumlloumlnboumlzteti meg egymaacutestoacutel

10

P tiacutepus 80 nm (voumlroumls)

D tiacutepus 540 nm (zoumlld)

T tiacutepus 440 nm (keacutek)

A retinaacuten a receptorok eloszlaacutesa nem egyenletes a csapocskaacutek elsősorban

a laacutetoacutemező koumlzepeacuten fordulnak elő a paacutelcikaacutek pedig a szeacutelek feleacute ( a paacutelcikaacutek a

vilaacutegossaacuteg eacutes soumlteacutetseacuteg megkuumlloumlnboumlzteteacuteseacuteeacutert felelnek ) Ez a magyaraacutezata

annak hogy sziacutenlaacutetaacutesunk a laacutetoacuteteacuter szeacutele feleacute gyengeacutebb miacuteg a feacutenyerősseacuteg

vaacuteltozaacutesokat a szeacutelek feleacute eacuterzeacutekeljuumlk jobban

Az idegpaacutelyaacutek kileacutepeacutesi helyeacuten az uacuten vakfolton nincsenek receptorok s iacutegy az ide

eső feacuteny nem vesz reacuteszt az eacuterzeacutekeleacutesben Az hogy meacutegis oumlsszefuumlggő keacutepet

laacutetunk agyunk eacutes vizuaacutelis emleacutekezetuumlnk eredmeacutenye A laacutetaacutes eacuterzeacutekenyseacutege

(finomsaacutega reacuteszletgazdagsaacutega) toumlbbfeacutele jellemző egyuumltteseacutetől fuumlgg

a geometriai felbontaacutes azt hataacuterozza meg hogy adott taacutevolsaacutegban egymaacuteshoz

milyen koumlzel leacutevő pontokat tudunk kuumlloumlnaacutelloacute pontokkeacutent eacuteszlelni

az intenzitaacutes-felbontaacutes a feacutenyerősseacuteg-vaacuteltozaacutes eacuterzeacutekeleacuteseacutet

a sziacutenfelbontaacutes pedig a sziacutenaacuternyalatok elkuumlloumlniacuteteacutesi keacutepesseacutegeacutet adja meg

I32 Laacutetaacutesunk időbeli felbontaacutesa

Ez azt jelenti hogy mennyi ideig kell egy laacutetvaacutenynak tartania ahhoz hogy

kuumlloumlnaacutelloacutenak - az előtte eacutes utaacutena koumlvetkező laacutetvaacutenytoacutel kuumlloumlnboumlzőnek - eacuterzeacuteklejuumlk

Tapasztalatok szerint a kb 115 maacutesodpercneacutel roumlvidebb időre bdquobevillanoacuterdquo

keacutepeket nem tudjuk egymaacutestoacutel elkuumlloumlniacutetve eacuterzeacutekelni pontosabban tudatunk

szintjeacuten oumlsszefolynak egymaacutessal (A film eacutes a televiacutezioacute ezt a felbontaacutesi korlaacutetot

hasznaacutelja ki a mozgaacutes eacuterzeteacutenek kelteacuteseacutere a maacutesodpercenkeacutenti 16-25 aacutelloacutekeacutep

megjeleniacuteteacutese szaacutemunkra oumlsszefuumlggő viszonylag villogaacutesmentes mozgoacutekeacutepkeacutent

jelentkezik)

11

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 7: 3D Grafika És Animáció

7

AB axis bulbi RSTaxis opticusA polus anterior legelső pont R axis opticus eluumllső pontjaB polus posterior leghaacutetsoacute pont ST fovea centralis saacutergafoltP az optikai koumlzeacuteppont S a szem aacuteltal neacutezett pontα feacutenysugaacuter beeseacutesi szoumlge M maacutesik teacuterbeli pontαrsquo feacutenysugaacuter toumlreacutesi szoumlge SM az axis opticusra merőlegesγ az STPMT szoumlg szakaszλ az axis bulbi eacutes a laacutetoacutesugaacuter MT M keacutepe az ideghaacutertyaacuten aacuteltal bezaacutert szoumlg

11 aacutebra

A szem feleacutepiacuteteacutese [4]

I22 A laacutetaacutes alapjai

A laacutetaacutes azon alapul hogy az igen roumlvid hullaacutemhosszuacutesaacuteguacute 380-780 nmndashes

frekvencia tartomaacutenyba eső elektromaacutegneses sugaacuterzaacutes a szemuumlnkben feacutenyeacuterzetet

kelt A szem feacutenyeacuterzeacutekeleacutesi mechanizmusaacutenak leacutenyege a sugaacuterzaacutesi energia

hataacutesaacutera a szem recehaacutertyaacutejaacutenak (retinaacutejaacutenak) idegszaacutelveacutegződeacutesei műkoumldeacutesbe

leacutepnek fizikai-keacutemiai folyamatok indulnak be melyek az agy megfelelő

koumlzpontjaihoz idegingeruumllet formaacutejaacuteban tovaacutebbiacutetoacutednak Keacutet egymaacutestoacutel

kismeacuterteacutekben kuumlloumlnboumlző keacutepet eacuterzeacutekeluumlnk melyek agyunkban teacuterbeli keacutep eacuterzeteacutet

keltik

I23 A visszavert feacuteny eacuterzeacutekeleacutese

A laacutetaacutest (fizikai-optikai oldalroacutel megkoumlzeliacutetve) a feacuteny valamint feacutenyelnyelő-

feacutenytoumlrő - feacutenyvisszaverő testek koumllcsoumlnhataacutesai teszik lehetőveacute Ennek fizikai

alapjai

A szuumlkseacuteges feacutenyt valamilyen elsődleges feacutenyforraacutes biztosiacutetja

A laacutetoacuteteacuter objektumai ndash mint maacutesodlagos feacutenyforraacutesok ndash visszaverik a raacutejuk eső

feacutenyt A visszavert feacuteny valamennyi jellemzője megvaacuteltozik ez a vaacuteltozaacutes

hordozza a laacutetaacuteshoz szuumlkseacuteges informaacutecioacutet

A visszavert feacuteny a szembe jut Az alapvető optikai oumlsszefuumlggeacutesek a szem

műkoumldeacuteseacutere neacutezve is eacuterveacutenyesek A szemnek mint lekeacutepező rendszernek

legfontosabb alkotoacuteeleme a szemlencse

8

Szemuumlnk alakja automatikusan koumlveti a keacutepalkotaacutes igeacutenyeit ezt a tudat alatti

szabaacutelyozaacutest nevezhetjuumlk autoacutefoacutekusznak is A lekeacutepezeacutes eredmeacutenyekeacutent a retina

belső (goumlmb) feluumlleteacuten leacutetrejoumln a fordiacutetott aacutellaacutesuacute keacutep

I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet

segiacutetseacutegeacutevel

A keacutepeacuterzet igen oumlsszetett fizioloacutegiai folyamat melyben a szemen az

ingeruumlletkoumlzvetiacutető idegpaacutelyaacutekon illetve az agy laacutetoacutekoumlzpontjaacuten kiacutevuumll igen nagy

szerepet kap a toumlbbi eacuterzeacutekszerv eacutes az uacuten vizuaacutelis emleacutekezet is Ez utoacutebbi teszi

lehetőveacute a laacutetvaacutenyboacutel hiaacutenyzoacute keacutepreacuteszek poacutetlaacutesaacutet az alakzatok felismereacuteseacutet

9

A laacutetaacutes az oumlsszes eacuterzeacutekelt informaacutecioacutenak toumlbb mint a feleacutet egyes kutatoacutek szerint

akaacuter 90 ndash aacutet is szolgaacuteltatja A kuumlloumlnboumlző eacuterzetek aacuteltalaacuteban keverednek

1egymaacutessal mivel toumlbb eacuterzeacutekszerv egyuumlttes műkoumldeacuteseacutenek eredmeacutenyei

Ugyanerre utal az is hogy a laacutetaacutes mennyire oumlsszefuumlgg a tanulaacutessal

szemuumlnk elvileg a megszuumlleteacutestől kezdve alkalmas lenne a laacutetaacutesban jaacutetszott

szerepeacutenek betoumllteacuteseacutere az uacutejszuumlloumltt azonban eleinte csak homaacutelyos foltokat

eacuteszlel melyek a vizuaacutelis memoacuteria toumlltődeacuteseacutevel a szem mozgataacutesaacutenak

tudatosulaacutesaacuteval vaacutelnak keacutepeacuterzetteacute

I25 Keacutepek lekeacutepzeacutese

Az ingeruumlletek tovaacutebbiacutetaacutesa az agy laacutetoacutekoumlzpontjai feleacute toumlbbszoumlroumls aacutetteacutetelen

keresztuumll igen nagy hibatűreacutessel rendelkező uacuten impulzuskoacuted modulaacutecioacuteval

toumlrteacutenik Nem az oumlsszes receptor jele jut el az idegpaacutelyaacutekon az agyba mivel a kb

126 millioacute receptorra csak kb 1 millioacute idegszaacutel jut Ez a redukcioacute egy retina szintű

előfeldolgozaacutest takar elsősorban az eacutelekre gyors vaacuteltozaacutesokra vonatkozoacute adatok

jutnak a koumlzponti idegrendszerbe A lekeacutepezeacutes időben gyorsan zajloacute folyamat

Agyi parancsra az izmok a szemet (vagy akaacuter az egeacutesz testet) uacutegy mozgatjaacutek

hogy a kiacutevaacutent laacutetvaacuteny leacutetrejoumlhessen

A szemlencse foacutekusztaacutevolsaacutegaacutenak eacutes a pupilla nyiacutelaacutesaacutenak automatikus

vaacuteltoztataacutesa folyamatosan biztosiacutetja az eacuteles keacutepalkotaacutest eacutes a megfelelő

feacutenymennyiseacuteget

I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai

I31 Sziacutenek eacuterzeacutekeleacutese

A receptorok eacuterzeacutekenyseacutege nemcsak a feacuteny erősseacutegeacutetől hanem annak

hullaacutemhosszaacutetoacutel is fuumlgg A laacutetaacutes soraacuten a feacuteny hullaacutemhossz szerinti oumlsszeteacuteteleacutet is

eacuterzeacutekeljuumlk ez a sziacuteneacuterzetben nyilvaacutenul meg A csapocskaacutek melyek a sziacutenlaacutetaacutest

teszik lehetőveacute haacuterom csoportba sorolhatoacutek ezeket eacuterzeacutekenyseacuteguumlk hullaacutemhossz-

fuumlggeacutese kuumlloumlnboumlzteti meg egymaacutestoacutel

10

P tiacutepus 80 nm (voumlroumls)

D tiacutepus 540 nm (zoumlld)

T tiacutepus 440 nm (keacutek)

A retinaacuten a receptorok eloszlaacutesa nem egyenletes a csapocskaacutek elsősorban

a laacutetoacutemező koumlzepeacuten fordulnak elő a paacutelcikaacutek pedig a szeacutelek feleacute ( a paacutelcikaacutek a

vilaacutegossaacuteg eacutes soumlteacutetseacuteg megkuumlloumlnboumlzteteacuteseacuteeacutert felelnek ) Ez a magyaraacutezata

annak hogy sziacutenlaacutetaacutesunk a laacutetoacuteteacuter szeacutele feleacute gyengeacutebb miacuteg a feacutenyerősseacuteg

vaacuteltozaacutesokat a szeacutelek feleacute eacuterzeacutekeljuumlk jobban

Az idegpaacutelyaacutek kileacutepeacutesi helyeacuten az uacuten vakfolton nincsenek receptorok s iacutegy az ide

eső feacuteny nem vesz reacuteszt az eacuterzeacutekeleacutesben Az hogy meacutegis oumlsszefuumlggő keacutepet

laacutetunk agyunk eacutes vizuaacutelis emleacutekezetuumlnk eredmeacutenye A laacutetaacutes eacuterzeacutekenyseacutege

(finomsaacutega reacuteszletgazdagsaacutega) toumlbbfeacutele jellemző egyuumltteseacutetől fuumlgg

a geometriai felbontaacutes azt hataacuterozza meg hogy adott taacutevolsaacutegban egymaacuteshoz

milyen koumlzel leacutevő pontokat tudunk kuumlloumlnaacutelloacute pontokkeacutent eacuteszlelni

az intenzitaacutes-felbontaacutes a feacutenyerősseacuteg-vaacuteltozaacutes eacuterzeacutekeleacuteseacutet

a sziacutenfelbontaacutes pedig a sziacutenaacuternyalatok elkuumlloumlniacuteteacutesi keacutepesseacutegeacutet adja meg

I32 Laacutetaacutesunk időbeli felbontaacutesa

Ez azt jelenti hogy mennyi ideig kell egy laacutetvaacutenynak tartania ahhoz hogy

kuumlloumlnaacutelloacutenak - az előtte eacutes utaacutena koumlvetkező laacutetvaacutenytoacutel kuumlloumlnboumlzőnek - eacuterzeacuteklejuumlk

Tapasztalatok szerint a kb 115 maacutesodpercneacutel roumlvidebb időre bdquobevillanoacuterdquo

keacutepeket nem tudjuk egymaacutestoacutel elkuumlloumlniacutetve eacuterzeacutekelni pontosabban tudatunk

szintjeacuten oumlsszefolynak egymaacutessal (A film eacutes a televiacutezioacute ezt a felbontaacutesi korlaacutetot

hasznaacutelja ki a mozgaacutes eacuterzeteacutenek kelteacuteseacutere a maacutesodpercenkeacutenti 16-25 aacutelloacutekeacutep

megjeleniacuteteacutese szaacutemunkra oumlsszefuumlggő viszonylag villogaacutesmentes mozgoacutekeacutepkeacutent

jelentkezik)

11

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 8: 3D Grafika És Animáció

I22 A laacutetaacutes alapjai

A laacutetaacutes azon alapul hogy az igen roumlvid hullaacutemhosszuacutesaacuteguacute 380-780 nmndashes

frekvencia tartomaacutenyba eső elektromaacutegneses sugaacuterzaacutes a szemuumlnkben feacutenyeacuterzetet

kelt A szem feacutenyeacuterzeacutekeleacutesi mechanizmusaacutenak leacutenyege a sugaacuterzaacutesi energia

hataacutesaacutera a szem recehaacutertyaacutejaacutenak (retinaacutejaacutenak) idegszaacutelveacutegződeacutesei műkoumldeacutesbe

leacutepnek fizikai-keacutemiai folyamatok indulnak be melyek az agy megfelelő

koumlzpontjaihoz idegingeruumllet formaacutejaacuteban tovaacutebbiacutetoacutednak Keacutet egymaacutestoacutel

kismeacuterteacutekben kuumlloumlnboumlző keacutepet eacuterzeacutekeluumlnk melyek agyunkban teacuterbeli keacutep eacuterzeteacutet

keltik

I23 A visszavert feacuteny eacuterzeacutekeleacutese

A laacutetaacutest (fizikai-optikai oldalroacutel megkoumlzeliacutetve) a feacuteny valamint feacutenyelnyelő-

feacutenytoumlrő - feacutenyvisszaverő testek koumllcsoumlnhataacutesai teszik lehetőveacute Ennek fizikai

alapjai

A szuumlkseacuteges feacutenyt valamilyen elsődleges feacutenyforraacutes biztosiacutetja

A laacutetoacuteteacuter objektumai ndash mint maacutesodlagos feacutenyforraacutesok ndash visszaverik a raacutejuk eső

feacutenyt A visszavert feacuteny valamennyi jellemzője megvaacuteltozik ez a vaacuteltozaacutes

hordozza a laacutetaacuteshoz szuumlkseacuteges informaacutecioacutet

A visszavert feacuteny a szembe jut Az alapvető optikai oumlsszefuumlggeacutesek a szem

műkoumldeacuteseacutere neacutezve is eacuterveacutenyesek A szemnek mint lekeacutepező rendszernek

legfontosabb alkotoacuteeleme a szemlencse

8

Szemuumlnk alakja automatikusan koumlveti a keacutepalkotaacutes igeacutenyeit ezt a tudat alatti

szabaacutelyozaacutest nevezhetjuumlk autoacutefoacutekusznak is A lekeacutepezeacutes eredmeacutenyekeacutent a retina

belső (goumlmb) feluumlleteacuten leacutetrejoumln a fordiacutetott aacutellaacutesuacute keacutep

I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet

segiacutetseacutegeacutevel

A keacutepeacuterzet igen oumlsszetett fizioloacutegiai folyamat melyben a szemen az

ingeruumlletkoumlzvetiacutető idegpaacutelyaacutekon illetve az agy laacutetoacutekoumlzpontjaacuten kiacutevuumll igen nagy

szerepet kap a toumlbbi eacuterzeacutekszerv eacutes az uacuten vizuaacutelis emleacutekezet is Ez utoacutebbi teszi

lehetőveacute a laacutetvaacutenyboacutel hiaacutenyzoacute keacutepreacuteszek poacutetlaacutesaacutet az alakzatok felismereacuteseacutet

9

A laacutetaacutes az oumlsszes eacuterzeacutekelt informaacutecioacutenak toumlbb mint a feleacutet egyes kutatoacutek szerint

akaacuter 90 ndash aacutet is szolgaacuteltatja A kuumlloumlnboumlző eacuterzetek aacuteltalaacuteban keverednek

1egymaacutessal mivel toumlbb eacuterzeacutekszerv egyuumlttes műkoumldeacuteseacutenek eredmeacutenyei

Ugyanerre utal az is hogy a laacutetaacutes mennyire oumlsszefuumlgg a tanulaacutessal

szemuumlnk elvileg a megszuumlleteacutestől kezdve alkalmas lenne a laacutetaacutesban jaacutetszott

szerepeacutenek betoumllteacuteseacutere az uacutejszuumlloumltt azonban eleinte csak homaacutelyos foltokat

eacuteszlel melyek a vizuaacutelis memoacuteria toumlltődeacuteseacutevel a szem mozgataacutesaacutenak

tudatosulaacutesaacuteval vaacutelnak keacutepeacuterzetteacute

I25 Keacutepek lekeacutepzeacutese

Az ingeruumlletek tovaacutebbiacutetaacutesa az agy laacutetoacutekoumlzpontjai feleacute toumlbbszoumlroumls aacutetteacutetelen

keresztuumll igen nagy hibatűreacutessel rendelkező uacuten impulzuskoacuted modulaacutecioacuteval

toumlrteacutenik Nem az oumlsszes receptor jele jut el az idegpaacutelyaacutekon az agyba mivel a kb

126 millioacute receptorra csak kb 1 millioacute idegszaacutel jut Ez a redukcioacute egy retina szintű

előfeldolgozaacutest takar elsősorban az eacutelekre gyors vaacuteltozaacutesokra vonatkozoacute adatok

jutnak a koumlzponti idegrendszerbe A lekeacutepezeacutes időben gyorsan zajloacute folyamat

Agyi parancsra az izmok a szemet (vagy akaacuter az egeacutesz testet) uacutegy mozgatjaacutek

hogy a kiacutevaacutent laacutetvaacuteny leacutetrejoumlhessen

A szemlencse foacutekusztaacutevolsaacutegaacutenak eacutes a pupilla nyiacutelaacutesaacutenak automatikus

vaacuteltoztataacutesa folyamatosan biztosiacutetja az eacuteles keacutepalkotaacutest eacutes a megfelelő

feacutenymennyiseacuteget

I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai

I31 Sziacutenek eacuterzeacutekeleacutese

A receptorok eacuterzeacutekenyseacutege nemcsak a feacuteny erősseacutegeacutetől hanem annak

hullaacutemhosszaacutetoacutel is fuumlgg A laacutetaacutes soraacuten a feacuteny hullaacutemhossz szerinti oumlsszeteacuteteleacutet is

eacuterzeacutekeljuumlk ez a sziacuteneacuterzetben nyilvaacutenul meg A csapocskaacutek melyek a sziacutenlaacutetaacutest

teszik lehetőveacute haacuterom csoportba sorolhatoacutek ezeket eacuterzeacutekenyseacuteguumlk hullaacutemhossz-

fuumlggeacutese kuumlloumlnboumlzteti meg egymaacutestoacutel

10

P tiacutepus 80 nm (voumlroumls)

D tiacutepus 540 nm (zoumlld)

T tiacutepus 440 nm (keacutek)

A retinaacuten a receptorok eloszlaacutesa nem egyenletes a csapocskaacutek elsősorban

a laacutetoacutemező koumlzepeacuten fordulnak elő a paacutelcikaacutek pedig a szeacutelek feleacute ( a paacutelcikaacutek a

vilaacutegossaacuteg eacutes soumlteacutetseacuteg megkuumlloumlnboumlzteteacuteseacuteeacutert felelnek ) Ez a magyaraacutezata

annak hogy sziacutenlaacutetaacutesunk a laacutetoacuteteacuter szeacutele feleacute gyengeacutebb miacuteg a feacutenyerősseacuteg

vaacuteltozaacutesokat a szeacutelek feleacute eacuterzeacutekeljuumlk jobban

Az idegpaacutelyaacutek kileacutepeacutesi helyeacuten az uacuten vakfolton nincsenek receptorok s iacutegy az ide

eső feacuteny nem vesz reacuteszt az eacuterzeacutekeleacutesben Az hogy meacutegis oumlsszefuumlggő keacutepet

laacutetunk agyunk eacutes vizuaacutelis emleacutekezetuumlnk eredmeacutenye A laacutetaacutes eacuterzeacutekenyseacutege

(finomsaacutega reacuteszletgazdagsaacutega) toumlbbfeacutele jellemző egyuumltteseacutetől fuumlgg

a geometriai felbontaacutes azt hataacuterozza meg hogy adott taacutevolsaacutegban egymaacuteshoz

milyen koumlzel leacutevő pontokat tudunk kuumlloumlnaacutelloacute pontokkeacutent eacuteszlelni

az intenzitaacutes-felbontaacutes a feacutenyerősseacuteg-vaacuteltozaacutes eacuterzeacutekeleacuteseacutet

a sziacutenfelbontaacutes pedig a sziacutenaacuternyalatok elkuumlloumlniacuteteacutesi keacutepesseacutegeacutet adja meg

I32 Laacutetaacutesunk időbeli felbontaacutesa

Ez azt jelenti hogy mennyi ideig kell egy laacutetvaacutenynak tartania ahhoz hogy

kuumlloumlnaacutelloacutenak - az előtte eacutes utaacutena koumlvetkező laacutetvaacutenytoacutel kuumlloumlnboumlzőnek - eacuterzeacuteklejuumlk

Tapasztalatok szerint a kb 115 maacutesodpercneacutel roumlvidebb időre bdquobevillanoacuterdquo

keacutepeket nem tudjuk egymaacutestoacutel elkuumlloumlniacutetve eacuterzeacutekelni pontosabban tudatunk

szintjeacuten oumlsszefolynak egymaacutessal (A film eacutes a televiacutezioacute ezt a felbontaacutesi korlaacutetot

hasznaacutelja ki a mozgaacutes eacuterzeteacutenek kelteacuteseacutere a maacutesodpercenkeacutenti 16-25 aacutelloacutekeacutep

megjeleniacuteteacutese szaacutemunkra oumlsszefuumlggő viszonylag villogaacutesmentes mozgoacutekeacutepkeacutent

jelentkezik)

11

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 9: 3D Grafika És Animáció

Szemuumlnk alakja automatikusan koumlveti a keacutepalkotaacutes igeacutenyeit ezt a tudat alatti

szabaacutelyozaacutest nevezhetjuumlk autoacutefoacutekusznak is A lekeacutepezeacutes eredmeacutenyekeacutent a retina

belső (goumlmb) feluumlleteacuten leacutetrejoumln a fordiacutetott aacutellaacutesuacute keacutep

I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet

segiacutetseacutegeacutevel

A keacutepeacuterzet igen oumlsszetett fizioloacutegiai folyamat melyben a szemen az

ingeruumlletkoumlzvetiacutető idegpaacutelyaacutekon illetve az agy laacutetoacutekoumlzpontjaacuten kiacutevuumll igen nagy

szerepet kap a toumlbbi eacuterzeacutekszerv eacutes az uacuten vizuaacutelis emleacutekezet is Ez utoacutebbi teszi

lehetőveacute a laacutetvaacutenyboacutel hiaacutenyzoacute keacutepreacuteszek poacutetlaacutesaacutet az alakzatok felismereacuteseacutet

9

A laacutetaacutes az oumlsszes eacuterzeacutekelt informaacutecioacutenak toumlbb mint a feleacutet egyes kutatoacutek szerint

akaacuter 90 ndash aacutet is szolgaacuteltatja A kuumlloumlnboumlző eacuterzetek aacuteltalaacuteban keverednek

1egymaacutessal mivel toumlbb eacuterzeacutekszerv egyuumlttes műkoumldeacuteseacutenek eredmeacutenyei

Ugyanerre utal az is hogy a laacutetaacutes mennyire oumlsszefuumlgg a tanulaacutessal

szemuumlnk elvileg a megszuumlleteacutestől kezdve alkalmas lenne a laacutetaacutesban jaacutetszott

szerepeacutenek betoumllteacuteseacutere az uacutejszuumlloumltt azonban eleinte csak homaacutelyos foltokat

eacuteszlel melyek a vizuaacutelis memoacuteria toumlltődeacuteseacutevel a szem mozgataacutesaacutenak

tudatosulaacutesaacuteval vaacutelnak keacutepeacuterzetteacute

I25 Keacutepek lekeacutepzeacutese

Az ingeruumlletek tovaacutebbiacutetaacutesa az agy laacutetoacutekoumlzpontjai feleacute toumlbbszoumlroumls aacutetteacutetelen

keresztuumll igen nagy hibatűreacutessel rendelkező uacuten impulzuskoacuted modulaacutecioacuteval

toumlrteacutenik Nem az oumlsszes receptor jele jut el az idegpaacutelyaacutekon az agyba mivel a kb

126 millioacute receptorra csak kb 1 millioacute idegszaacutel jut Ez a redukcioacute egy retina szintű

előfeldolgozaacutest takar elsősorban az eacutelekre gyors vaacuteltozaacutesokra vonatkozoacute adatok

jutnak a koumlzponti idegrendszerbe A lekeacutepezeacutes időben gyorsan zajloacute folyamat

Agyi parancsra az izmok a szemet (vagy akaacuter az egeacutesz testet) uacutegy mozgatjaacutek

hogy a kiacutevaacutent laacutetvaacuteny leacutetrejoumlhessen

A szemlencse foacutekusztaacutevolsaacutegaacutenak eacutes a pupilla nyiacutelaacutesaacutenak automatikus

vaacuteltoztataacutesa folyamatosan biztosiacutetja az eacuteles keacutepalkotaacutest eacutes a megfelelő

feacutenymennyiseacuteget

I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai

I31 Sziacutenek eacuterzeacutekeleacutese

A receptorok eacuterzeacutekenyseacutege nemcsak a feacuteny erősseacutegeacutetől hanem annak

hullaacutemhosszaacutetoacutel is fuumlgg A laacutetaacutes soraacuten a feacuteny hullaacutemhossz szerinti oumlsszeteacuteteleacutet is

eacuterzeacutekeljuumlk ez a sziacuteneacuterzetben nyilvaacutenul meg A csapocskaacutek melyek a sziacutenlaacutetaacutest

teszik lehetőveacute haacuterom csoportba sorolhatoacutek ezeket eacuterzeacutekenyseacuteguumlk hullaacutemhossz-

fuumlggeacutese kuumlloumlnboumlzteti meg egymaacutestoacutel

10

P tiacutepus 80 nm (voumlroumls)

D tiacutepus 540 nm (zoumlld)

T tiacutepus 440 nm (keacutek)

A retinaacuten a receptorok eloszlaacutesa nem egyenletes a csapocskaacutek elsősorban

a laacutetoacutemező koumlzepeacuten fordulnak elő a paacutelcikaacutek pedig a szeacutelek feleacute ( a paacutelcikaacutek a

vilaacutegossaacuteg eacutes soumlteacutetseacuteg megkuumlloumlnboumlzteteacuteseacuteeacutert felelnek ) Ez a magyaraacutezata

annak hogy sziacutenlaacutetaacutesunk a laacutetoacuteteacuter szeacutele feleacute gyengeacutebb miacuteg a feacutenyerősseacuteg

vaacuteltozaacutesokat a szeacutelek feleacute eacuterzeacutekeljuumlk jobban

Az idegpaacutelyaacutek kileacutepeacutesi helyeacuten az uacuten vakfolton nincsenek receptorok s iacutegy az ide

eső feacuteny nem vesz reacuteszt az eacuterzeacutekeleacutesben Az hogy meacutegis oumlsszefuumlggő keacutepet

laacutetunk agyunk eacutes vizuaacutelis emleacutekezetuumlnk eredmeacutenye A laacutetaacutes eacuterzeacutekenyseacutege

(finomsaacutega reacuteszletgazdagsaacutega) toumlbbfeacutele jellemző egyuumltteseacutetől fuumlgg

a geometriai felbontaacutes azt hataacuterozza meg hogy adott taacutevolsaacutegban egymaacuteshoz

milyen koumlzel leacutevő pontokat tudunk kuumlloumlnaacutelloacute pontokkeacutent eacuteszlelni

az intenzitaacutes-felbontaacutes a feacutenyerősseacuteg-vaacuteltozaacutes eacuterzeacutekeleacuteseacutet

a sziacutenfelbontaacutes pedig a sziacutenaacuternyalatok elkuumlloumlniacuteteacutesi keacutepesseacutegeacutet adja meg

I32 Laacutetaacutesunk időbeli felbontaacutesa

Ez azt jelenti hogy mennyi ideig kell egy laacutetvaacutenynak tartania ahhoz hogy

kuumlloumlnaacutelloacutenak - az előtte eacutes utaacutena koumlvetkező laacutetvaacutenytoacutel kuumlloumlnboumlzőnek - eacuterzeacuteklejuumlk

Tapasztalatok szerint a kb 115 maacutesodpercneacutel roumlvidebb időre bdquobevillanoacuterdquo

keacutepeket nem tudjuk egymaacutestoacutel elkuumlloumlniacutetve eacuterzeacutekelni pontosabban tudatunk

szintjeacuten oumlsszefolynak egymaacutessal (A film eacutes a televiacutezioacute ezt a felbontaacutesi korlaacutetot

hasznaacutelja ki a mozgaacutes eacuterzeteacutenek kelteacuteseacutere a maacutesodpercenkeacutenti 16-25 aacutelloacutekeacutep

megjeleniacuteteacutese szaacutemunkra oumlsszefuumlggő viszonylag villogaacutesmentes mozgoacutekeacutepkeacutent

jelentkezik)

11

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 10: 3D Grafika És Animáció

A laacutetaacutes az oumlsszes eacuterzeacutekelt informaacutecioacutenak toumlbb mint a feleacutet egyes kutatoacutek szerint

akaacuter 90 ndash aacutet is szolgaacuteltatja A kuumlloumlnboumlző eacuterzetek aacuteltalaacuteban keverednek

1egymaacutessal mivel toumlbb eacuterzeacutekszerv egyuumlttes műkoumldeacuteseacutenek eredmeacutenyei

Ugyanerre utal az is hogy a laacutetaacutes mennyire oumlsszefuumlgg a tanulaacutessal

szemuumlnk elvileg a megszuumlleteacutestől kezdve alkalmas lenne a laacutetaacutesban jaacutetszott

szerepeacutenek betoumllteacuteseacutere az uacutejszuumlloumltt azonban eleinte csak homaacutelyos foltokat

eacuteszlel melyek a vizuaacutelis memoacuteria toumlltődeacuteseacutevel a szem mozgataacutesaacutenak

tudatosulaacutesaacuteval vaacutelnak keacutepeacuterzetteacute

I25 Keacutepek lekeacutepzeacutese

Az ingeruumlletek tovaacutebbiacutetaacutesa az agy laacutetoacutekoumlzpontjai feleacute toumlbbszoumlroumls aacutetteacutetelen

keresztuumll igen nagy hibatűreacutessel rendelkező uacuten impulzuskoacuted modulaacutecioacuteval

toumlrteacutenik Nem az oumlsszes receptor jele jut el az idegpaacutelyaacutekon az agyba mivel a kb

126 millioacute receptorra csak kb 1 millioacute idegszaacutel jut Ez a redukcioacute egy retina szintű

előfeldolgozaacutest takar elsősorban az eacutelekre gyors vaacuteltozaacutesokra vonatkozoacute adatok

jutnak a koumlzponti idegrendszerbe A lekeacutepezeacutes időben gyorsan zajloacute folyamat

Agyi parancsra az izmok a szemet (vagy akaacuter az egeacutesz testet) uacutegy mozgatjaacutek

hogy a kiacutevaacutent laacutetvaacuteny leacutetrejoumlhessen

A szemlencse foacutekusztaacutevolsaacutegaacutenak eacutes a pupilla nyiacutelaacutesaacutenak automatikus

vaacuteltoztataacutesa folyamatosan biztosiacutetja az eacuteles keacutepalkotaacutest eacutes a megfelelő

feacutenymennyiseacuteget

I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai

I31 Sziacutenek eacuterzeacutekeleacutese

A receptorok eacuterzeacutekenyseacutege nemcsak a feacuteny erősseacutegeacutetől hanem annak

hullaacutemhosszaacutetoacutel is fuumlgg A laacutetaacutes soraacuten a feacuteny hullaacutemhossz szerinti oumlsszeteacuteteleacutet is

eacuterzeacutekeljuumlk ez a sziacuteneacuterzetben nyilvaacutenul meg A csapocskaacutek melyek a sziacutenlaacutetaacutest

teszik lehetőveacute haacuterom csoportba sorolhatoacutek ezeket eacuterzeacutekenyseacuteguumlk hullaacutemhossz-

fuumlggeacutese kuumlloumlnboumlzteti meg egymaacutestoacutel

10

P tiacutepus 80 nm (voumlroumls)

D tiacutepus 540 nm (zoumlld)

T tiacutepus 440 nm (keacutek)

A retinaacuten a receptorok eloszlaacutesa nem egyenletes a csapocskaacutek elsősorban

a laacutetoacutemező koumlzepeacuten fordulnak elő a paacutelcikaacutek pedig a szeacutelek feleacute ( a paacutelcikaacutek a

vilaacutegossaacuteg eacutes soumlteacutetseacuteg megkuumlloumlnboumlzteteacuteseacuteeacutert felelnek ) Ez a magyaraacutezata

annak hogy sziacutenlaacutetaacutesunk a laacutetoacuteteacuter szeacutele feleacute gyengeacutebb miacuteg a feacutenyerősseacuteg

vaacuteltozaacutesokat a szeacutelek feleacute eacuterzeacutekeljuumlk jobban

Az idegpaacutelyaacutek kileacutepeacutesi helyeacuten az uacuten vakfolton nincsenek receptorok s iacutegy az ide

eső feacuteny nem vesz reacuteszt az eacuterzeacutekeleacutesben Az hogy meacutegis oumlsszefuumlggő keacutepet

laacutetunk agyunk eacutes vizuaacutelis emleacutekezetuumlnk eredmeacutenye A laacutetaacutes eacuterzeacutekenyseacutege

(finomsaacutega reacuteszletgazdagsaacutega) toumlbbfeacutele jellemző egyuumltteseacutetől fuumlgg

a geometriai felbontaacutes azt hataacuterozza meg hogy adott taacutevolsaacutegban egymaacuteshoz

milyen koumlzel leacutevő pontokat tudunk kuumlloumlnaacutelloacute pontokkeacutent eacuteszlelni

az intenzitaacutes-felbontaacutes a feacutenyerősseacuteg-vaacuteltozaacutes eacuterzeacutekeleacuteseacutet

a sziacutenfelbontaacutes pedig a sziacutenaacuternyalatok elkuumlloumlniacuteteacutesi keacutepesseacutegeacutet adja meg

I32 Laacutetaacutesunk időbeli felbontaacutesa

Ez azt jelenti hogy mennyi ideig kell egy laacutetvaacutenynak tartania ahhoz hogy

kuumlloumlnaacutelloacutenak - az előtte eacutes utaacutena koumlvetkező laacutetvaacutenytoacutel kuumlloumlnboumlzőnek - eacuterzeacuteklejuumlk

Tapasztalatok szerint a kb 115 maacutesodpercneacutel roumlvidebb időre bdquobevillanoacuterdquo

keacutepeket nem tudjuk egymaacutestoacutel elkuumlloumlniacutetve eacuterzeacutekelni pontosabban tudatunk

szintjeacuten oumlsszefolynak egymaacutessal (A film eacutes a televiacutezioacute ezt a felbontaacutesi korlaacutetot

hasznaacutelja ki a mozgaacutes eacuterzeteacutenek kelteacuteseacutere a maacutesodpercenkeacutenti 16-25 aacutelloacutekeacutep

megjeleniacuteteacutese szaacutemunkra oumlsszefuumlggő viszonylag villogaacutesmentes mozgoacutekeacutepkeacutent

jelentkezik)

11

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 11: 3D Grafika És Animáció

P tiacutepus 80 nm (voumlroumls)

D tiacutepus 540 nm (zoumlld)

T tiacutepus 440 nm (keacutek)

A retinaacuten a receptorok eloszlaacutesa nem egyenletes a csapocskaacutek elsősorban

a laacutetoacutemező koumlzepeacuten fordulnak elő a paacutelcikaacutek pedig a szeacutelek feleacute ( a paacutelcikaacutek a

vilaacutegossaacuteg eacutes soumlteacutetseacuteg megkuumlloumlnboumlzteteacuteseacuteeacutert felelnek ) Ez a magyaraacutezata

annak hogy sziacutenlaacutetaacutesunk a laacutetoacuteteacuter szeacutele feleacute gyengeacutebb miacuteg a feacutenyerősseacuteg

vaacuteltozaacutesokat a szeacutelek feleacute eacuterzeacutekeljuumlk jobban

Az idegpaacutelyaacutek kileacutepeacutesi helyeacuten az uacuten vakfolton nincsenek receptorok s iacutegy az ide

eső feacuteny nem vesz reacuteszt az eacuterzeacutekeleacutesben Az hogy meacutegis oumlsszefuumlggő keacutepet

laacutetunk agyunk eacutes vizuaacutelis emleacutekezetuumlnk eredmeacutenye A laacutetaacutes eacuterzeacutekenyseacutege

(finomsaacutega reacuteszletgazdagsaacutega) toumlbbfeacutele jellemző egyuumltteseacutetől fuumlgg

a geometriai felbontaacutes azt hataacuterozza meg hogy adott taacutevolsaacutegban egymaacuteshoz

milyen koumlzel leacutevő pontokat tudunk kuumlloumlnaacutelloacute pontokkeacutent eacuteszlelni

az intenzitaacutes-felbontaacutes a feacutenyerősseacuteg-vaacuteltozaacutes eacuterzeacutekeleacuteseacutet

a sziacutenfelbontaacutes pedig a sziacutenaacuternyalatok elkuumlloumlniacuteteacutesi keacutepesseacutegeacutet adja meg

I32 Laacutetaacutesunk időbeli felbontaacutesa

Ez azt jelenti hogy mennyi ideig kell egy laacutetvaacutenynak tartania ahhoz hogy

kuumlloumlnaacutelloacutenak - az előtte eacutes utaacutena koumlvetkező laacutetvaacutenytoacutel kuumlloumlnboumlzőnek - eacuterzeacuteklejuumlk

Tapasztalatok szerint a kb 115 maacutesodpercneacutel roumlvidebb időre bdquobevillanoacuterdquo

keacutepeket nem tudjuk egymaacutestoacutel elkuumlloumlniacutetve eacuterzeacutekelni pontosabban tudatunk

szintjeacuten oumlsszefolynak egymaacutessal (A film eacutes a televiacutezioacute ezt a felbontaacutesi korlaacutetot

hasznaacutelja ki a mozgaacutes eacuterzeteacutenek kelteacuteseacutere a maacutesodpercenkeacutenti 16-25 aacutelloacutekeacutep

megjeleniacuteteacutese szaacutemunkra oumlsszefuumlggő viszonylag villogaacutesmentes mozgoacutekeacutepkeacutent

jelentkezik)

11

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 12: 3D Grafika És Animáció

I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői

Az agyunkban kialakuloacute sziacuteneacuterzetnek haacuterom jellemző tulajdonsaacutega van

Sziacutenezet (hue) melyet a heacutetkoumlznapi eacuteletben helytelenuumll sziacutennek mondunk a

feacuteny hullaacutemhosszaacutetoacutel fuumlgg Szemuumlnk kb 200 feacutele sziacutenezetet tud

megkuumlloumlnboumlztetni

Teliacutetettseacuteg (saturation) ami attoacutel fuumlgg hogy mekkora a feheacuter feacuteny oumlsszetevője

a toumlbbi oumlsszetevőhoumlz keacutepest Szemuumlnk egy adott sziacutenezetben kb 20

teliacutetettseacutegi fokozatot tud megkuumlloumlnboumlztetni

Vilaacutegossaacuteg (intensity) ami az egyseacutegnyi teacuterszoumlgben szemuumlnkbe eacuterkező

feacutenyenergia mennyiseacutegeacutetől fuumlgg Szemuumlnk vilaacutegossaacuteg szerinti

felbontoacutekeacutepesseacutege erősen hullaacutemhosszfuumlggő aacutetlagosan mintegy 500

fokozatot tudunk megkuumlloumlnboumlztetni

I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere

A sziacutenkevereacutes keacutet legelterjedtebb moacutedszere

Additiacutev sziacutenkevereacutes a kevereacuteksziacuten monokroacutem feacutenyforraacutesok feacutenyeacutenek

egymaacutesra vetiacuteteacuteseacutevel aacutell elő Iacutegy műkoumldik pl a TV keacutepcső Az additiacutev

sziacutenkevereacutes alapsziacutenei a voumlroumls zoumlld eacutes keacutek (RGB)

Szubsztraktiacutev sziacutenkevereacutes szeacuteles saacutevban sugaacuterzoacute feacutenyforraacutes sziacuteneacuteből

kivonunk egyes hullaacutemhosszakat (vagy tartomaacutenyokat) a kevereacuteksziacuten az

lesz ami megmarad Ez az alapelve pl a sziacutenes nyomtataacutesnak A

szuszbtraktiacutev sziacutenkevereacutes alapsziacutenei a saacuterga magenta ciaacuten (YMC)

12

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 13: 3D Grafika És Animáció

I35 Alakzatlaacutetaacutes

A taacutergyakat nem keacuteppontok halmazakeacutent hanem teacuterbeli alakzatokkeacutent

eacuterzeacutekeljuumlk Agyunk leacutenyegkiemelő teveacutekenyseacutegeacutenek koumlszoumlnhetően az egyes

feacutenyingerek - a vizuaacutelis emleacutekezetből valoacute kiegeacutesziacuteteacutesekkel- foltok eacutelek

rendszereacuteveacute alakulnak

Agyunk alakfelismerő keacutepesseacutege rendkiacutevuumlli a taacutergyakat - meacuteretuumlktől

aacutellaacutesuktoacutel sziacutenuumlktől stb fuumlggetlenuumll - akaacuter kis reacuteszleteikből is szinte hihetetlen

biztonsaacuteggal ismerjuumlk fel bdquoKeacutepi adatbaacutezissalrdquo rendelkezuumlnk mely mintaacutekat

(prorotiacutepusokat) taacuterol A felismereacutes mintailleszteacutessel toumlrteacutenik A folyamat

visszacsatolaacutest is tartalmaz a fel nem ismert reacuteszletekről erősebb odaneacutezeacutessel

proacutebaacutelunk toumlbb informaacutecioacutet szerezni

13

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 14: 3D Grafika És Animáció

II MATEMATIKAI ALAPOK

II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese

Az aacutetlaacutetszoacute testeket kiveacuteve minden testnek csak a felsziacuteneacutet laacutetjuk nem

neacutezhetuumlnk bele az objektumok belsejeacutebe Testek felsziacuteneacutet legjobban poligonokkal

koumlzeliacutethetjuumlk ez azt is jelenti hogy egy testet polieacutederrel lehet legpontosabban

megkoumlzeliacuteteni Vilaacutegos hogy mineacutel toumlbb sokszoumlggel koumlzeliacutetjuumlk a test felsziacuteneacutet

annaacutel pontosabb lesz az aacuteltalunk rajzolt keacutep

Ha transzformaacuteljuk egy poligon minden csuacutecsaacutet - peacuteldaacuteul valamelyik

vetiacuteteacutesi moacutedszerrel ndash eacutes a kapott transzformaacutelt csuacutecspontokat a megfelelő

sorrendben oumlsszekoumltjuumlk megkapjuk a poligon transzformaacutelt keacutepeacutet

Amennyiben meg akarjuk szerkeszteni egy tetszőleges test haacuterom

dimenzioacutes transzformaacutelt keacutepeacutet akkor a moacutedszer a koumlvetkező Minden poligonnal -

mely a test felsziacuteneacutet alkotja - veacutegrehajtva a fenti műveletet megszerkeszthetjuumlk a

test haacuterom dimenzioacutes perspektiacutev keacutepeacutet Ez a transzformaacutecioacute meacuteg nyers mivel ezt

a keacutepet laacutethatoacutesaacutegi szempontboacutel elemezni kell Mineacutel toumlbb poligonnal koumlzeliacutetjuumlk a

test felsziacuteneacutet annaacutel pontosabban tudjuk aacutebraacutezolni a test teacuterbeli keacutepeacutet

Ahhoz hogy aacutebraacutezolni tudjunk teacuterbeli testeket a felmeruumllő feladatokat az

alaacutebbi csoportokba sorolhatjuk

Ismernuumlnk kell a koordinaacutetandashrendszereket amelyekben az aacutebraacutezolandoacute dolog

geometriaacuteja adatai leiacuteraacutesra keruumllnek

Transzformaacutecioacutekat kell veacutegeznuumlnk koordinaacutetandashrendszerek koumlzoumltt(hogy peacuteldaacuteul

neacutezőpontot tudjunk vaacuteltani az aacutebraacutezolandoacute taacutergyhoz viszonyiacutetva)

A haacuteromdimenzioacutes objektumok keacutetdimenzioacutes vetuumlleteit kell keacutepeznuumlnk ahhoz

hogy a keacutepernyőn megjeleniacutethessuumlk azokat

Neacutemely test eseteacuten elegendő keveacutes poligonnal koumlzeliacutetenuumlnk pl egy kocka

felsziacuteneacutet hat neacutegyzettel pontosan feliacuterhatjuk A 3D Grafika Szerkesztőprogram

10ndashs verzioacuteja is ilyen testek aacutebraacutezolaacutesaacutera toumlrekszik melyet az alaacutebbi matematikai

alapfogalmak segiacutetseacutegeacutevel teszi

14

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 15: 3D Grafika És Animáció

II2 Vektorok R2-ben eacutes R3-ban

II21 Iraacutenyiacutetott szakaszok

Azokat a mennyiseacutegeket amelyeknek az eacuterteacuteke egy szaacutem eacutes a teacuter egy

iraacutenyaacutenak egyuumlttes megadaacutesaacuteval jellemezhetuumlnk vektoroknak nevezzuumlk (pl

sebesseacuteg gyorsulaacutes) A vektor iraacutenyiacutetott szakasz egy nyiacutel a teacuterben (21 aacutebra) A

szakasz hosszaacutet a vektor nagysaacutegaacutenak vagy abszoluacutet eacuterteacutekeacutenek nevezzuumlk

A v vektor hosszaacutet |v| vel jeloumlljuumlk

II22 Vektorok jellemzői

Keacutet vektor szoumlgeacutenek mindig az iraacutenyaik aacuteltal alkotott konvex szoumlget nevezzuumlk

Ez a szoumlg tehaacutet szaacuteznyolcvan foknaacutel nem lehet nagyobb

A 0 vektor olyan vektor amelynek kezdő eacutes veacutegpontja egybeesik a hossza

tehaacutet nulla

Keacutet vektor akkor egyenlő ha nagysaacuteguk eacutes iraacutenyuk is azonos

A v vektorral egyiraacutenyuacute egyseacutegvektor v0= v |v|

15

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 16: 3D Grafika És Animáció

II23 Vektorok oumlsszege

Legyen a eacutes b keacutet vektor (22 aacutebra) akkor oumlsszeguumlket a koumlvetkezőkeacuteppen

eacutertelmezzuumlk paacuterhuzamos eltolaacutessal az a eacutes b vektorokat uacutegy fűzzuumlk egymaacuteshoz

hogy a b vektor kezdőpontja az a vektor veacutegpontjaacutehoz keruumlljoumln Az a+b

oumlsszegvektor az a vektor lesz amelynek kezdőpontja azonos az a vektor

kezdőpontjaacuteval veacutegpontja pedig azonos a b vektor veacutegpontjaacuteval Mint ez a

koumlvetkező rajzon laacutethatoacute mindegy hogy a b vektort fűzzuumlk az a vektorhoz vagy

az a-t a b-hez

II24 Vektorok szorzaacutesa szaacutemmal

Az a vektor k-szorosaacuten azt a kbulla-val jeloumllt vektort eacutertjuumlk amelynek abszoluacutet

eacuterteacuteke ka iraacutenya pedig a iraacutenyaacuteval egyező ha a k pozitiacutev eacutes azzal

ellenteacutetes ha k negatiacutev (23) aacutebra Itt k a valoacutes szaacutemok eleme

16

b

a a+b

a b

22 aacutebra

ndash2a a 2a ndasha

23 aacutebra

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 17: 3D Grafika És Animáció

Vektorok k szaacutemmal valoacute szorzaacutesaacutet az animal1 egyseacutegben peacuteldaacuteul a forgat nevű

eljaacuteraacutes hasznaacutelja fel

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

begin

helliphelliphelliphelliphelliphelliphelliphellip

pi1=trunc(( cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3 )h)

pi2=trunc(( (cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3 )h)

pi3=trunc(( (sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )h)

helliphelliphelliphelliphelliphelliphelliphelliphellip

end

Az eljaacuteraacutes bemenő parameacutetereiben szereplő h eacuterteacutekkel szorozzuk meg a

forgataacutesi keacuteplettel elforgatott pontok koordinaacutetaacuteit A h parameacuteter segiacutetseacutegeacutevel

egyszerűen megkaphatjuk egy taacutergy oumlnmagaacutehoz viszonyiacutetott nagyiacutetott vagy

kicsinyiacutetett keacutepeacutet

II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja

Az a1a2hellipan vektorok (24 aacutebra) lineaacuteris kombinaacutecioacutejakeacutent a

b=k1a1+k2a2+hellip+knan vektort eacutertjuumlk ahol a kr 1lt=rlt=n valoacutes szaacutemok

A b vektor mindkeacutet esetben az ar vektorok lineaacuteris kombinaacutecioacutejakeacutent aacutell elő

Nyilvaacutenvaloacutean veacutegtelen sok lehetőseacuteg van arra hogy kuumlloumlnboumlző ar vektorok

oumlsszegekeacutent fejezzuumlk ki a b vektort

17

a5

a3 a4

b b a2 a3

a1

a2

a1

24 aacutebra

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 18: 3D Grafika És Animáció

Elsősorban az a keacuterdeacutes hogy leacutetezik e minimaacutelis szaacutemuacute ar vektor

amelynek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute Tekintsuumlk a

koumlvetkező egyenletet

k1a1+k2a2+hellip+knan=0 (21)

Az a1a2hellipan vektorokat fuumlggetlennek nevezzuumlk ha az egyenletnek nincs

k1k2hellipkn=0-toacutel kuumlloumlnboumlző megoldaacutesa Ekkor a1a2hellipan azok a minimaacutelis

szaacutemuacute vektorok amelyek lineaacuteris kombinaacutecioacutejakeacutent baacutermely vektor előaacutelliacutethatoacute A

teacuter dimenzioacuteja a lineaacuterisan fuumlggetlen vektorainak szaacutemaacuteval egyenlő

II26 Vektorok megadaacutesa koordinaacutetaacutekkal

Legyenek e1 e2 eacutes e3 (25 aacutebra) az R3 lineaacuterisan fuumlggetlen vektorai Akkor

az R3 oumlsszes vektora kifejezhető az e1 e2 eacutes e3 vektorok kombinaacutecioacutejakeacutent

Minden a vektor kifejezhető az egyseacutegvektorok lineaacuteris kombinaacutecioacutejaacutenak

segiacutetseacutegeacutevel

a=a1e1+a2e2+a3e3 (22)

Adott e1 e2 eacutes e3 (22) eseteacuten a iraacutenyaacutet csak az a1 a2 eacutes a3 egyuumltthatoacutek

hataacuterozzaacutek meg Ezeket az a vektor baacutezisra vonatkozoacute koordinaacutetaacuteinak nevezzuumlk

Baacutezisnak az ei lineaacuterisan fuumlggetlen vektorok azon minimaacutelis halmazaacutet nevezzuumlk

amelyek lineaacuteris kombinaacutecioacutejakeacutent a vizsgaacutelt teacuter valamennyi vektora egyeacutertelműen

előaacutelliacutethatoacute

18

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 19: 3D Grafika És Animáció

II27 Egyenesek parameacuteteres egyenletei

A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor

Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)

r feliacuterhatoacute ro eacutes v segiacutetseacutegeacutevelr=ro+PoP ahol PoP=tv (t є R)tehaacutet r=ro+tv

Az is igaz hogy minden ilyen alakban előaacutelliacutethatoacute helyvektor veacutegpontja az egyenesen van A kapott egyenlet tehaacutet az egyenes parameacuteteres vektoregyenlete

II28 Vektorok szorzaacutesa

II 2 8 1 A skalaacuteris szorzat

Az a eacutes b vektorok skalaacuteris szorzata alatt az

ab= |a||b|cos szlig (23)

valoacutes szaacutemot eacutertjuumlk ahol szlig (0lt=szliglt=pi) az a eacutes b vektorok aacuteltal koumlzrezaacutert szoumlg

A skalaacuteris szorzaacutes eredmeacutenye nem vektor hanem egy valoacutes szaacutem vagyis skalaacuter

A szorzat koordinaacutetaacutek segiacutetseacutegeacutevel is kiszaacutemolhatoacute

ab=a1b1+a2b2+hellip+anbn (24)

19

y

P0

vr0

Pr

x

26 aacutebra

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 20: 3D Grafika És Animáció

II282 A vektoriaacutelis szorzat

Vektoriaacutelis szorzatot csak az R3-ban definiaacutelunk A vektoriaacutelis szorzat

eredmeacutenye szinteacuten vektor amely merőleges az a eacutes b aacuteltal meghataacuterozott siacutekra

meacutegpedig uacutegy hogy az a b eacutes axb uacuten jobbsodraacutesuacute rendszert alkot Az

eredmeacutenyvektor hossza pedig az a eacutes b vektorok hosszaacutenak eacutes koumlzbezaacutert szoumlguumlk

szinuszaacutenak szorzata

|axb| = |a||b|sin szlig (25)

Legyen a(a1a2a3) eacutes b(b1b2b3)az R3 vektorai akkor az i-edik koordinaacutetaacutet

uacutegy kapjuk meg hogy az a eacutes b vektorok i-edik koordinaacutetaacutejaacutenak elhagyaacutesaacuteval

kapott keacutetsoros determinaacutenst kiszaacutemoljuk Az animal1 egyseacuteg a laacutethatoacutesaacuteg

megaacutellapiacutetaacutesakor a kirajzolandoacute lap normaacutelvektoraacutenak koordinaacutetaacuteit vektoriaacutelis

szorzaacutessal szaacutemolja ki

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

var

vavbarray[13] of integer

narray[13] of real

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

Begin

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

n[1]=(va[2]vb[3])-(va[3]vb[2])

n[2]=(va[3]vb[1])-(va[1]vb[3])

n[3]=(va[1]vb[2])-(va[2]vb[1])

helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip

end

20

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 21: 3D Grafika És Animáció

II29 Pont eacutes egyenes taacutevolsaacutega

A program szerkeszteacutesi reacuteszeacuteben lehetőseacutege van a felhasznaacuteloacutenak arra

hogy a rajzolt szakaszokat vagy azok csuacutecspontjait maacutes poziacutecioacuteba mozgassa

Ennek az a moacutedja hogy az egeacuterrel keacutetszer raacute kell kattintania a kijeloumllendő

szakaszra Ha a kattintaacutes helye egy bizonyos taacutevolsaacutegon beluumll (a programban 5

egyseacuteg) van valamelyik egyenestől akkor meacuteg a koumlvetkező felteacuteteleket kell

megvizsgaacutelni

az egyenesnek azt a reacuteszeacutet kell figyelembe venni ahol az egeacuter poziacutecioacuteja van

hiszen az egyenesen lehetnek maacutes szakaszok

a program figyelembe veszi azt hogy az egeacuter poziacutecioacuteja nincs e egy adott

taacutevolsaacutegon beluumll kijeloumllt szakasz valamelyik veacutegpontjaacuteval mert ha igen akkor a

csuacutecsokat kell elmozdiacutetania

Egy pontnak egy egyenestől meacutert taacutevolsaacutegaacutet uacutegy kapjuk meg hogy

meghataacuterozzuk a P pontboacutel a g egyenesre bocsaacutetott merőleges g egyenessel

valoacute metszeacutespontjaacutenak a P pontboacutel valoacute taacutevolsaacutegaacutet (27 aacutebra)

Az egyenes egyenlete g X=A+ku ahol A az egyenes egy pontja u

pedig az egyenes iraacutenyvektora

Nyilvaacutenvaloacutean igaz hogy

n=nrsquondashku

Koumlnnyen megaacutellapiacutethatjuk az aacutebra alapjaacuten hogy

ku=nrsquocosα

Ez ekvivalens a koumlvetkezővel

ku=nrsquo(uu)cosα

21

P

nrsquo ng

A α u ku

27 aacutebra

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 22: 3D Grafika És Animáció

A skalaacuteris szorzat oumlsszefuumlggeacuteseacutenek felhasznaacutelaacutesaacuteval

ku=nrsquo(uu)

ku=ku(uu)=(nrsquouu)(uu)=(nrsquouu2)u=(nrsquouu2)u

(Ezt a levezeteacutest az eddigi oumlsszefuumlggeacutesek felhasznaacutelaacutesaacuteval veacutegeztuumlk el)

Behelyettesiacuteteacutes utaacuten kapjuk

d=n=nrsquondash(nrsquouu2)u (26)

A programban ezt a koumlvetkező sorok valoacutesiacutetjaacutek meg

skalaru=u[1]u[1]+u[2]u[2]

skalarnu=n[1]u[1]+n[2]u[2]

if skalarultgt0 then k=skalarnuskalaru

nv[1]=n[1]-ku[1]

nv[2]=n[2]-ku[2]

tav=sqrt(sqr(nv[1])+sqr(nv[2]))

if (tavlt5) and (mxgt=a)

and (mygt=b)

and (mxlt=c)

and(mylt=d)

then kozel=true

22

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 23: 3D Grafika És Animáció

23

A koumlvetkező aacutebraacuten egy peacuteldaacutet laacutethatunk arra az esetre amikor egy szakaszt nem pontosan rajzolunk eacutes azt dupla kattintaacutessal odeacutebb vonszoljuk

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 24: 3D Grafika És Animáció

II 3 Maacutetrixszaacutemiacutetaacutes

Az objektumok a haacuterom dimenzioacutes teacuter valamely reacuteszhalmazaacuteban talaacutelhatoacutek

meg ezeacutert raacutejuk a haacuterom dimenzioacutes teacuter transzformaacutecioacutei vonatkoznak Az alakzatok

keacutepeacutet perspektiacutevikus transzformaacutecioacuteval egy siacutekra keacutepezzuumlk le Toumlbbfeacutele lekeacutepezeacutes

is lehetseacuteges amelyet perspektiacutevnak nevezhetuumlnk pl a keacutepsiacutek helyeacutetől vagy a

vetiacuteteacutes tiacutepusaacutetoacutel fuumlggően Az iacutegy keletkező keacutepeket is transzformaacutelhatjuk raacutejuk a

siacutek keacutetdimenzioacutes transzformaacutecioacutei vonatkoznak amelyek az alkalmazott vetiacuteteacutes

tiacutepusaacutetoacutel fuumlggetlenek Egy poligon transzformaacutecioacutejaacutehoz eleacuteg a csuacutecspontjait

transzformaacutelni mivel ezeket oumlsszekoumltve hozzaacutejutunk a transzformaacutelt poligonhoz

Hasonloacutekeacuteppen egy polieacuteder transzformaacutecioacutejaacutet a felsziacuteneacutet alkotoacute poligonok

transzformaacutecioacutejaacutera vezethetjuumlk vissza

A koumlvetkezőkben a keacutet eacutes haacuteromdimenzioacutes terek pontjaira vonatkozoacute

transzformaacutecioacutekat mutatom be Ezek aacuteltalaacuteban maacutetrixokkal leiacuterhatoacutek

Az mxn meacuteretű maacutetrix m sorba eacutes n oszlopba rendezett elemek taacuteblaacutezata Az m

sorboacutel eacutes n oszlopboacutel aacutelloacute maacutetrixok M halmazaacutet a koumlvetkezőkeacuteppen jeloumlljuumlk

M(mxn R) ahol R a valoacutes szaacutemok halmaza

Legyen A egy mxn-es maacutetrix

a11 a12 hellip a1n

A= a21 a22 hellip a2n (27)hellip hellip

am1 am2 hellip amn

II31 Maacutetrixok jellemzői

A taacuteblaacutezat alakja m eacutes n eacuterteacutekeacutetől fuumlgg

Az olyan maacutetrixot amelynek csak egy sora (m=1) vagy csak egy

oszlopa(n=1) van vektornak(sor ill oszlopmaacutetrixnak) nevezzuumlk

Ha egy maacutetrixnak ugyanannyi sora van mint oszlopa(m=n) akkor neacutegyzetes

vagy kvadratikus maacutetrixroacutel beszeacuteluumlnk

A nullamaacutetrix minden eleme 0

Az egyseacutegmaacutetrix olyan maacutetrix amelynek minden főaacutetloacutebeli eleme 1 eacutes minden

maacutes helyen 0 aacutell

24

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 25: 3D Grafika És Animáció

II32 Műveletek maacutetrixokkal

II321 Maacutetrixok oumlsszeadaacutesa

Legyen az A eacutes a B maacutetrix az (mxn R) halmaz maacutetrixa

a11 a12 hellip a1n

A= a21 a22 hellip a2n hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1n

B= b21 b22 hellip b2n hellip hellip

bm1 bm2 hellip bmn

Az A eacutes B maacutetrixok oumlsszegeacuten azt a maacutetrixot eacutertjuumlk amelynek elemei rendre az A

eacutes B maacutetrix megfelelő elemeinek oumlsszegeacuteből adoacutednak

A+B=C

a11+b11 a12+b12 hellip a1n+b1n

C= a21+b21 a22+b22 hellip a2n+b2n (28)hellip hellip

am1+bm1 am2+am2 hellip amn+bmn

II322 Maacutetrix szorzaacutesa skalaacuterral

Legyen k egy valoacutes szaacutem Az A maacutetrix k-szorosaacuten azt a maacutetrixot eacutertjuumlk amelynek

minden eleme az A maacutetrix megfelelő elemeacutenek k-szorosa

ka11 ka12 hellip ka1n

kA = hellip (29) kam1 kam2 hellip kamn

25

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 26: 3D Grafika És Animáció

II323 Maacutetrixok szorzaacutesa

Legyen az A maacutetrix A є M (mxn R) eacutes a B maacutetrix B є M (nxp R)

a11 a12 hellip a1n

A= a21 a22 hellip a2n

hellip hellip

am1 am2 hellip amn

b11 b12 hellip b1p

B= b21 b22 hellip b2p

hellip hellip

bn1 bn2 hellip bnp

A szorzatmaacutetrixot a koumlvetkezőkeacuteppen eacutertelmezzuumlk

c11 c12 hellip c1p

C=AB= c21 c22 hellip c2p (210)hellip hellipcm1 cm2 hellip cmp

ahol

b1k

cik= ai1 ai2 hellip ain b2k (211)

hellip

bnk

Ahol a szorzatmaacutetrix azon elemeacutet amely az i-edik sor eacutes a k-adik oszlop

metszeacutespontjaacuteban van uacutegy kapjuk meg hogy az A maacutetrix i-edik soraacutet skalaacuterisan

szorozzuk a B maacutetrix k-adik oszlopaacuteval

Ehhez elengedhetetlen felteacutetel hogy az A maacutetrix oszlopainak szaacutema egyenlő

legyen a B maacutetrix sorainak szaacutemaacuteval Ha tehaacutet az A maacutetrix mxn meacuteretű akkor a B

maacutetrixnak nxp meacuteretűnek kell lenni eacutes a C maacutetrix mxp meacuteretű lesz

26

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 27: 3D Grafika És Animáció

III GEOMETRIAI TRANSZFORMAacuteCIOacuteK

III1 Transzformaacutecioacutek haacuterom dimenzioacuteban

A haacuterom dimenzioacutes transzformaacutecioacutek magaacutera az objektumra vonatkoznak

Ezek nem mindig a valoacutesaacuteg pontos aacutebraacutezolaacutesaacutenak eszkoumlzei hanem - uacutegy mint a

keacutetdimenzioacutes transzformaacutecioacutek - tuacutelmutatnak azon a valoacutesaacuteg transzformaacutelt

aacutebraacutezolaacutesmoacutedjaacutet segiacutetik elő A keacutetdimenzioacutes transzformaacutecioacutek aacuteltalaacutenosiacutetaacutesaacutenak is

felfoghatjuk őket A haacuterom dimenzioacutes transzformaacutecioacutek jelentős reacuteszeacutenek egy

maacutetrixot feleltethetuumlnk meg A koumlvetkező reacuteszben leiacuterom a program aacuteltal is

felhasznaacutelt haacuterom dimenzioacutes vektorok forgataacutesi maacutetrixaacutet az alkalmazott vetiacuteteacutesi

moacutedszert a laacutethatoacutesaacutegi felteacutetellel egyuumltt

III11 Haacuteromdimenzioacutes forgataacutes

Az a(a1a2) vektort (31) az arra alkalmas maacutetrix segiacutetseacutegeacutevel elforgathatjuk

Ez termeacuteszetesen nem csak keacutet hanem haacuteromdimenzioacutes esetben is

lehetseacuteges Ha abboacutel indulunk ki hogy egy tetszőleges test veacuteges szaacutemuacute

helyvektorral leiacuterhatoacute akkor azt a testet egy tetszőlegesen elforgatott helyzetben

is aacutebraacutezolni tudjuk csak minden egyes helyvektort el kell forgatnunk a rotaacutecioacutes

maacutetrix segiacutetseacutegeacutevel

27

a

31 aacutebra

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 28: 3D Grafika És Animáció

Az u(u1u2u3) vektort (32) szeretneacutenk a Z-tengely koumlruumll elforgatni egy

meghataacuterozott γ szoumlggel

Ekoumlzben a z koordinaacuteta nem csak az x eacutes az y vaacuteltoznak megAz u vektort koordinaacutetaacutekkal a koumlvetkező moacutedon iacuterhatjuk fel

Tudjuk hogy a z koordinaacuteta nem vaacuteltozik ezeacutert eleacuteg ha az r vektort ( u vetuumlleteacutet az XY siacutekra ) vizsgaacuteljuk

Mivel r=(u1u2) a 31-es oumlsszefuumlggeacutes alapjaacutenr=(rcosδrsinδ)

Forgassuk el r vektort γ szoumlggel az uacutej vektor legyen rrsquo=b1+b2 ahol

b1=(rcos(δ+γ)0)=(rcosδcosγndashrsinδsinγ0)b2=(0rsin(δ+γ))=(0rsinδcosγ+rcosδsinγ)

u1=rcosδu2=rsinδ 31 alapjaacuten

rrsquo=(b1b2)=(u1cosγndashu2sinγu1sinγ+u2cosγ)

Mivel a harmadik koordinaacuteta nem vaacuteltozott ursquondashnek a koordinaacutetaacutei a koumlvetkezőkursquo=(u1cosγndashu2sinγu1sinγ+u2cosγu3)

28

Z

u3 u

u2

δ γ rrsquo b1 Yu1 b2 r

32 aacutebraX

u1 rcosδu= u2 = rsinδ 31

u3 u3

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 29: 3D Grafika És Animáció

u1 u2 u3 egyuumltthatoacuteinak segiacutetseacutegeacutevel feliacuterhatjuk a Z tengely koumlruumlli forgataacutes

maacutetrixaacutet

cosγ ndashsinγ 0Rγ = sinγ cosγ 0 (32)

0 0 1

Hasonloacutean kapjuk az X illetve az Y tengely koumlruumlli forgataacutes maacutetrixaacutet

1 0 0 Rα = 0 cosα ndashsinα (33)

0 sinα cosα

cosβ 0 sinβ Rβ = 0 1 0 (34)

ndashsinβ 0 cosβ

Az R=RαRβRγ

coscos ndashcossin sincossin + sinsincos coscossinsinsin ndashsincossinsincossincos sincos+cossinsin coscos

annak a transzformaacutecioacutenak a maacutetrixa amellyel a haacuterom transzformaacutecioacute

egymaacutesutaacutenja helyettesiacutethető ez nem maacutes mint a komponensek maacutetrixaacutenak

megfelelő sorrendben vett szorzata

Itt a teacuterbeli forgataacutest a koordinaacutetandashrendszer 3 tengelye koumlruumlli egy-egy

forgataacutes egymaacutesutaacutenjakeacutent kezeljuumlk A program forgat eljaacuteraacutesa ezt a maacutetrixot

hasznaacutelja

pi1=trunc(cos(rb)cos(rg)p1ndashcos(rb)sin(rg)p2+sin(rb)p3)

pi2=trunc((cos(ra)sin(rg)+sin(ra)sin(rb)cos(rg))p1 +

(cos(ra)cos(rg)ndashsin(ra)sin(rb)sin(rg))p2ndash

sin(ra)cos(rb)p3)

pi3=trunc((sin(ra)sin(rg)ndashcos(ra)sin(rb)cos(rg))p1+

(sin(ra)cos(rg)+cos(ra)sin(rb)sin(rg))p2+

cos(ra)cos(rb)p3 )

29

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 30: 3D Grafika És Animáció

III12 Vetiacuteteacutesi tiacutepusok

A vetiacuteteacutes keacutet kuumlloumlnboumlző fajtaacutejaacutet kuumlloumlnboumlztetjuumlk meg a koumlzeacuteppontos eacutes a

paacuterhuzamos vetiacuteteacutest A koumlzeacuteppontos vetiacuteteacutes nagyon koumlzel aacutell az emberi szem

laacutetaacutesmoacutedjaacutehoz miacuteg a paacuterhuzamos vetiacuteteacutes a vetiacuteteacutes tisztaacuten matematikai formaacuteja

A 3D grafika eacutes szerkesztőprogram a paacuterhuzamos vetiacuteteacutes moacutedszereacutet

alkalmazza meacutegpedig a paacuterhuzamos vetiacuteteacutesnek is azt a nagyon egyszerű

formaacutejaacutet amikor annak a tengelynek az iraacutenyvektoraacutet hasznaacuteljuk vetiacutetővektorkeacutent

amelyikre a vetiacuteteacutes toumlrteacutenik

Legyen a vetiacutetendő pontba mutatoacute vektor k(k1k2k3) a vetiacutetett pont

koordinaacutetaacutejaacutenak vektora b(b1b2b3) eacutes a vetiacuteteacutes toumlrteacutenjen az YZ tengelyek

siacutekjaacutera akkor a vetiacuteteacutes keacuteplete nem maacutes mint

30

39 aacutebraKoumlzeacuteppontos vetiacuteteacutessel kapott kocka keacutepe

310 aacutebra Paacuterhuzamos vetiacuteteacutessel kapott kocka keacutepe

b1 0 b2 = k2 (310) b3 k3

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 31: 3D Grafika És Animáció

III13 Laacutethatoacutesaacuteg

A maacutes keacutepek aacuteltal eltakart keacutepreacuteszek eliminaacutelaacutesa a valoacutesaacutegot

megkoumlzeliacutető aacutebraacutezolaacutes egyik lehetőseacutege A taacutergyak helyes laacutethatoacutesaacutegaacutenak

figyelembeveacuteteleacutevel leacutenyegesen hozzaacutejaacuterulunk ahhoz hogy jobban lehessen

aacutebraacutezolni őket

Tekintsuumlnk egy siacutek lapok aacuteltal hataacuterolt konvex testet peacuteldaacuteul egy kockaacutet

Forgassuk el a kockaacutenkat a koordinaacutetandashrendszer tengelyei koumlruumll tetszőleges

(φ1φ2φ3) szoumlggel Azt akarjuk megaacutellapiacutetani hogy a kockaacutenak mely lapjai

laacutethatoacutek eacutes melyek nem Felteacuteteluumlnk szerint a test siacutek lapokboacutel aacutell Egy ilyen lap

helyzeteacutet a normaacutelvektora iacuterja le Ha valamennyi siacutek normaacutelvektoraacutet a test

koumlzeacuteppontjaacuteval ellenteacutetesen iraacutenyiacutetjuk akkor a normaacutelvektora segiacutetseacutegeacutevel meg

tudjuk aacutellapiacutetani hogy egy lap laacutethatoacute vagy nem Ha paacuterhuzamos vetiacuteteacutest

alkalmazunk elegendő a normaacutelvektort vizsgaacutelni Koumlzeacuteppontos vetiacuteteacutesneacutel

szuumlkseacuteguumlnk van meacuteg az adott lap suacutelypontjaacutera is

Paacuterhuzamos vetiacuteteacutesneacutel a lap laacutethatoacutesaacutegaacutenak egy felteacuteteleacutet kapjuk azaacuteltal

hogy a normaacutelvektor eacutes a vetiacutetővektor aacuteltal bezaacutert szoumlget (φ) vizsgaacuteljuk (311

aacutebra)

Ha

φ lt90 akkor a lap nem laacutethatoacute

φ gt=90 a lap laacutethatoacute

a szoumlg koumlnnyen meghataacuterozhatoacute a normaacutelvektor eacutes a vetiacutetővektor skalaacuteris

szorzaacutesaacuteval (25)

31

n1

n2

n3 311 aacutebra

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 32: 3D Grafika És Animáció

IV 3D GRAFIKA SZERKESZTŐPROGRAM

BEMUTATAacuteSA

IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak

felhasznaacuteloacutei keacutezikoumlnyve

Kijelentem hogy az aacuteltalam elkeacutesziacutetett program csak sajaacutet szellemi

kapacitaacutesomra eacutepuumll Azt vagy annak reacuteszeit egyeduumll aacutelliacutetottam elő maacutes

meacutediaacutekban a koacutedot nem mutattam be maacutes aacuteltalam tanulmaacutenyozott programok

koacutedjaiboacutel nem tettem a programomba A program első verzioacutejaacutet szakdolgozatom

teacutemakoumlreacuteben gondos felkeacuteszuumlleacutesem jegyeacuteben keacutesziacutetettem A teacutema igazaacuten

megfogott eacutes lehetőseacutegem szerint a teacutemakoumlrben geometriai tudaacutesomat tovaacutebb

fejlesztem a programboacutel egy erősebb vaacuteltozatot keacutesziacutetek melyhez szuumlkseacuteges

meacuteg a siacutekok teacuterben valoacute elhelyezkedeacuteseacutenek megaacutellapiacutetaacutesa eacutes a siacutekban fekvő

csuacutecspontok sorrendjeacutenek megaacutellapiacutetaacutesa Kisebb feladat szaacutemomra a siacutekbeli

pontok elhelyezkedeacuteseacutenek eacutes helyes sorrendjeacutenek megaacutellapiacutetaacutesa amelyre egy joacute

eljaacuteraacutes a VEB POINT moacutedszer

A keacutezikoumlnyv tartalma

Bevezeteacutes

1 Rajzolaacutesi lehetőseacutegek

2 Eszkoumlztaacuterak

3 Peacutelda rajzok

4 3Dndashs keacutepek előaacutelliacutetaacutesa

5 Egyeacuteb funkcioacutek

32

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 33: 3D Grafika És Animáció

Bevezeteacutes

A program hardver szoftver koumlvetelmeacutenyei a koumlvetkezők

Hardver koumlvetelmeacutenyek A programba helyezett animaacutecioacutes funkcioacute miatt

ajaacutenlott legalaacutebb 486-os processzorral matematikai taacutersprocesszorral rendelkező

geacutepen futtatni a programot Gyengeacutebb teljesiacutetmeacuteny eseteacuten a program

eacutelvezhetőseacutege erősen csoumlkken A program egyaraacutent műkoumldik monokroacutem eacutes

sziacutenes monitorokon is Egeacuter hasznaacutelata elengedhetetlen a program műkoumldeacuteseacutehez

Memoacuteriaszuumlkseacuteglet 1 Mbyte

Szoftver koumlvetelmeacutenyek A program keacutepes Dos 30-naacutel nagyobb verzioacutejuacute

operaacutecioacutes rendszerű geacutepen futni eacutes termeacuteszetesen a Windows programok Dos

moacutedjaacuteban is elindul Dos operaacutecioacutes rendszerben vagy a Win95 Dos moacutedjaacuteban

szuumlkseacuteges egeacuterkezelőt telepiacuteteni

A programot az egeacuteren kiacutevuumll billentyűkkel is lehet vezeacuterelni baacuter a funkcioacutek

toumlbbseacutege egeacuter hasznaacutelataacutehoz koumltoumltt A Szerkesztőprogram segiacutet megeacuterteni az

axonometrikus aacutebraacutezolaacutes alapjait ebben hasznos segiacutetseacuteget nyuacutejtanak a

peacuteldarajzok A felhasznaacuteloacute sajaacutet maga is keacutesziacutethet aacutebraacutekat melyeknek teacuterbeli

feleacutepiacuteteacuteseacutet ndash ha a rajz megfelel a program koumlvetelmeacutenyeinek ndash szemleacutelheti meg A

programmal előaacutelliacutethatoacute testek kocka eacutes teacuteglatest Bonyolultabb testek teacuterbeli

keacutepeacutenek vetiacutetett keacutepekből toumlrteacutenő előaacutelliacutetaacutesa meglehetősen neheacutez feladat A

program erre nem is keacutepes erre figyelmezteteacutest ad műkoumldeacutes koumlzben

A főkeacutepernyőn egy koordinaacutetandashrendszer segiacutetseacutegeacutevel szerkeszthetjuumlk

rajzainkat persze a koordinaacutetandashrendszer mellett maacutes kisegiacutető lehetőseacutegek is

eleacuterhetők amelyek a pontos rajzolaacutest segiacutetik Mivel a testek transzformaacutelt keacutepeit

pontosan a valoacutesaacutegnak megfelelően kell aacutebraacutezolnunk egy rajz megszerkeszteacutese

sokaacuteig tartoacute folyamat A kezdő felhasznaacuteloacuteknak a pontos rajzolaacutes hosszadalmas

viszont ez az idő a gyakorlat soraacuten alaposan csoumlkkenhet A kisegiacutető lehetőseacutegek

hasznaacutelata aacuteltalaacuteban kikapcsolhatoacute baacuter ezzel a lehetőseacuteggel nem eacuterdemes eacutelni

A szerkeszteacutes utaacuten a 3Dndashs keacutep menuumlpont segiacutetseacutegeacutevel megneacutezhetjuumlk a

testet amelyiknek az axonometrikus aacutebraacutejaacutet megszerkesztettuumlk A menuumlpont

meghiacutevaacutesakor egy kisebb keacutepernyőben megjelenik a test melyet tetszőlegesen

forgathatunk a teacuter haacuterom iraacutenyaacuteban nagyiacutethatjuk kicsinyiacutethetjuumlk eacutes

megvaacutelaszthatjuk hogy laacutethatoacuteak legyenekndashe a takart eacutelek vagy nem

33

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 34: 3D Grafika És Animáció

A program főkeacutepernyőjeacutenek feleacutepiacuteteacutese

A keacutepernyőn laacutethatoacute elemek

1 Editing főmenuuml A legtoumlbb rajzolaacutesi funkcioacute ebből a főmenuumlből hiacutevhatoacute meg

Itt taacutevoliacutethatjuk el az eszkoumlztaacuterakat a keacutepernyőről

2 Animaacutelaacutes főmenuuml A testeket ebben főmenuumlben jeleniacutethetjuumlk meg

kuumlloumlnboumlző animaacutecioacutes feladatokat veacutegezhetuumlnk rajtuk Az animaacutelaacutes főmenuumlndash

pontban talaacutelhatoacute 3 peacutelda rajzon is veacutegre lehet hajtani a fenti funkcioacutekat

3 eszkoumlztaacuterak A bal oldali eszkoumlztaacuterban talaacutelhatjuk meg rajzolaacutes eszkoumlzei

koumlzuumll a legfontosabbakat leggyakrabban hasznaacuteltakat A jobb oldali eszkoumlztaacuter

segiacutetseacutegeacutevel a peacuteldarajzokat hiacutevhatjuk elő

4 koordinaacutetandashrendszer raacutecsozattal Szerkeszteacutesi teruumllet egy a rajzolaacutest

koumlnnyiacutető 5 egyseacuteges haacuteloacuteval A raacutecsozatot eltuumlntethetjuumlk a koordinaacutetandash

rendszerből

5 staacutetusz sor Informaacutecioacutet kaphatunk az aktuaacutelis teveacutekenyseacuteggel

kapcsolatban

6 Kileacutepeacutes menuumlpont Kileacutepeacutes a programboacutel

34

1 Editing főmenuuml

2 Animaacutelaacutes főmenuuml

3 eszkoumlztaacuterak

4 koordinaacutetandashrendszer raacutecsozattal

5 staacutetusz sor6 Kileacutepeacutes menuumlpont

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 35: 3D Grafika És Animáció

1 Rajzolaacutesi lehetőseacutegek

A koordinaacutetandashrendszerbe rajzolhatoacute aacutebraacutek vonalakboacutel eacutepuumllnek fel ezeket a

vonal illetve a neacutegyszoumlg funkcioacute segiacutetseacutegeacutevel rajzolhatjuk A rajzolt szakaszok

adott negyeden beluumlli elhelyezkedeacutese illetve a csuacutecspontok koordinaacutetaacutei

moacutedosiacutethatoacutek Kijeloumllhetjuumlk a koordinaacutetandashrendszer objektumait ha raacutejuk keacutetszer

kattintunk az egeacuter bal gombjaacuteval A kijeloumllt objektumok az egeacuter jobb gombjaacutenak

lenyomaacutesaacuteig mozgathatoacutek Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek

Vonalat eacutes neacutegyszoumlget rajzolhatunk a megfelelő funkcioacutek segiacutetseacutegeacutevel A

megkezdett objektumok kiterjedeacutese az adott negyeden beluumll lehetseacuteges ahol a

rajzolaacutest elkezdtuumlk A lenti keacutepernyőn az egyes peacuteldarajz egy csuacutecsaacutenak

elmozgataacutesaacutet laacutethatjuk

35

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 36: 3D Grafika És Animáció

Az Editing főmenuuml rajz almenuumlpontjaacutenak menuumlpontjaival tudjuk a

rajzolaacutesi lehetőseacuteget eleacuterni

vonal

neacutegyszoumlg

keacuteptoumlrleacutes

raacutecs

raacutecsraugraacutes

31 Vonalrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben vonalat rajzol bal egeacutergomb

lenyomaacutesaacutenak poziacutecioacutejaacutetoacutel kezdődően ismeacutetelt bal egeacutergomb lenyomaacutesaacuteig A

művelet a jobb egeacutergomb lenyomaacutesaacuteval feacutelbeszakiacutethatoacute A pontosabb rajzolaacutest az

egeacutergomb koordinaacutetaacuteinak megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges

a koordinaacutetandashrendszerig terjedő segeacutedvonal koumlnnyiacuteti A koordinaacutetandashrendszeren

beluumlli egeacuterpoziacutecioacute a staacutetusz sorban laacutethatoacute Egy adott negyedben elkezdett vonal

rajzolaacutesaacutet csak ugyanabban a negyedben lehet befejezni

36

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 37: 3D Grafika És Animáció

32 Neacutegyszoumlgrajzolaacutes

A keacutepernyő koordinaacutetandashrendszereacuteben neacutegyszoumlget rajzol Valamelyik aacutetloacute

egyik veacutegpontjaacutenak koordinaacutetaacutei a koordinaacutetandashrendszeren beluumll az első lenyomott

bal egeacutergomb poziacutecioacutejaacuteban lesznek maacutesik veacutegpontja a maacutesodik lenyomott bal

egeacutergomb lenyomaacutesaacutenak koordinaacutetaacutejaacuteban lesz A művelet a jobb egeacutergomb

lenyomaacutesaacuteval feacutelbeszakad A pontosabb rajzolaacutest az egeacutergomb koordinaacutetaacuteinak

megfelelő poziacutecioacuteban egy viacutezszintes eacutes egy fuumlggőleges ndash a koordinaacutetandashrendszerig

terjedő ndash segeacutedvonal segiacuteti Adott negyedben elkezdett vonal rajzolaacutesaacutet csak

ugyanabban a negyedben lehet befejezni

37

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 38: 3D Grafika És Animáció

33 Keacuteptoumlrleacutes

A funkcioacute hataacutesaacutera az oumlsszes koordinaacutetandashrendszeren beluumll leacutevő elem

kitoumlrlődik A kijeloumllt objektumokat egyeseacutevel is toumlroumllhetjuumlk a Del billentyűvel

A rajzolaacutes megkoumlnnyiacuteteacuteseacutere alapeacutertelmezeacutesben egy 55 egyseacuteges neacutegyzethaacuteloacute

helyezkedik el a koordinaacutetandashrendszerben Ezt a menuumlpont segiacutetseacutegeacutevel

megvaacuteltoztathatjuk baacuter iacutegy neheacutezkesseacute vaacutelhat olyan rajzok szerkeszteacutese amelyek

a program segiacutetseacutegeacutevel teacuterbeli testekkeacute alakiacutethatoacutek

35 Raacutecsraugraacutes

A menuumlpontban eleacuterhetjuumlk hogy az egymaacuteshoz igen koumlzel rajzolt csuacutecsok

egy koordinaacutetaacutera helyezkedjenek

4 Eszkoumlztaacuterak

A legaacuteltalaacutenosabb funkcioacutek gyors eleacutereacuteseacutehez Rajz eacutes Peacuteldaacutek eszkoumlztaacuterak

aacutellnak a felhasznaacuteloacute rendelkezeacuteseacutere Ezek segiacutetseacutegeacutevel meghiacutevhatjuk a Rajzolaacutes

almenuumlpontjai eacutes a 3Dndashs keacutep menuumlpont funkcioacuteit Az Edit főmenuumlpont eszkoumlztaacuterak

almenuumljeacuteben a keacutet eszkoumlztaacuter kikapcsolhatoacute

38

vonal rajzolaacutesa

neacutegyszoumlg rajzolaacutesa

keacuteptoumlrleacutes

raacutecspontra igaziacutetaacutes

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 39: 3D Grafika És Animáció

5 Peacutelda rajzok

A programmal ismerkedők gyorsan megkedvelhetik a programot ha

kiproacutebaacuteljaacutek a peacuteldarajzokat eacutes azokat teacuterben szemleacutelik a 3Dndashs forgataacutes menuumlpont

segiacutetseacutegeacutevel

6 3Dndashs keacutepek előaacutelliacutetaacutesa

A koordinaacutetandashrendszerben szerkesztett rajzboacutel a program ha a rajz

megfelelő haacuterom-dimenzioacutes keacutepet aacutelliacutet elő A test teacuterbeli keacutepeacutet paacuterhuzamos

vetiacuteteacutesi moacutedszerrel az YZ siacutekra vetiacuteti A taacutergyat forgathatjuk kicsinyiacutethetjuumlk eacutes

nagyiacutethatjuk a forgataacutes keacutepernyőjeacuten beluumll A forgataacutes keacutepernyőjeacutet odeacutebb

vonszolhatjuk ha laacutetni akarjuk a koordinaacutetandashrendszer rajzaacutet Meghataacuterozhatjuk a

Laacutethat menuumlpont segiacutetseacutegeacutevel hogy a keacutepernyőn laacutetszoacutedjanak-e a takart eacutelek

vagy azok a valoacutesaacutegnak megfelelően takarva maradjanak

Az egyes peacuteldarajz teacuterbeli keacutepe

39

1 nagyiacutetaacutes

2 kicsinyiacuteteacutes

3 takart eacutelek megjeleniacuteteacutese eltaacutevoliacutetaacutesa

az egyes szaacutemuacute test

4 a forgataacutes iraacutenyai

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 40: 3D Grafika És Animáció

A 3Dndashs keacutep forgataacutes keacutepernyőn talaacutelhatoacute elemek a koumlvetkezők

1 nagyiacutetaacutes a keacutepernyő szeacutelesseacutegeacuteig nagyiacutetja a test keacutepeacutet

2 kicsinyiacuteteacutes kicsinyiacuteti a testet egy bizonyos meacuterteacutekig

3 Laacutethat menuumlpont meghataacuterozhatjuk vele hogy a keacutepernyőn laacutetszoacutedjanakndashe

az eltakart eacutelek vagy nem

4 a forgataacutes iraacutenyait adhatjuk meg

7 Egyeacuteb funkcioacutek

Rajzolt vonalak mozgataacutesa toumlrleacutese(geacutepi időt felhasznaacuteloacute eljaacuteraacutes amely azt

figyeli hogy le voltndashe uumltve a bal egeacutergomb keacutetszer)

Az egeacuter bal billentyűjeacutenek keacutetszeri lenyomaacutesaacuteval lehet kijeloumllni a vonalakat

vagy a vonalak csuacutecsait Ha egy csuacutecsban toumlbb vonal talaacutelkozik keacutetszeri

egeacutergomb lenyomaacutesaacutera az oumlsszes egy csuacutecsban leacutevő szakaszok kijeloumllődnek Egy

szakasz kijeloumlleacutesekor lehetőseacuteg van a jeloumllt szakasz toumlrleacuteseacutere

A mozgataacutest az eredeti poziacutecioacutetoacutel az egeacuter jobb gombjaacutenak lenyomaacutesaacutenaacutel

leacutevő pontig folytatja Az adott negyeden kiacutevuumll nem lehet vinni a szakasz

veacutegpontjait

Ha a koordinaacutetandashrendszeren beluumll talaacutelhatoacute az egeacuter akkor laacutethatjuk az egeacuter

koordinaacutetaacutejaacutet a staacutetusz sorban

Kileacutep Kileacutep a programboacutel

40

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 41: 3D Grafika És Animáció

IV 2 A program folyamataacutebraacuteja

41

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 42: 3D Grafika És Animáció

42

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 43: 3D Grafika És Animáció

43

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 44: 3D Grafika És Animáció

IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa

A 3Dndashs forgataacutes eacutes animaacutelaacutes keacutepernyőjeacutenek eacutes a keacutepernyő tartalmaacutenak kezdő

poziacutecioacutei az alaacutebbi tipizaacutelt konstansokkal vannak definiaacutelva a 3dkep eljaacuteraacutesban

csarray[14] of integer=(100100450450) A 3d keacutepernyő kerete

cimarray[14] of integer=(1005545070) 3d-s keacutep eacutes forgataacutes ciacutem

nagyitarray[14] of integer=(1007017085) Nagyiacutetaacutes menuuml kerete

kicsinyarray[14] of integer=(10085170100) Kicsinyiacuteteacutes menuuml kerete

kileparray[14] of integer=(38085450100) Kileacutepeacutes keret

lathatarray[14] of integer=(3807045085) Laacutethatoacutesaacuteg kerete

xkeretarray[14] of integer=(17070220100) Aacutellandoacute forgataacutes az X

tengely koumlruumll

xparray[14] of integer=(2207024085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az X

tengely koumlruumll

xnarray[14] of integer=(22085240100) Egeacuterbillentyű nyomaacutesaacutesig

toumlrteacutenő negatiacutev forgataacutes az X

tengely koumlruumll

ykeretarray[14] of integer=(24070290100) Aacutellandoacute forgataacutes az Y

tengely koumlruumll

yparray[14] of integer=(2907031085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev forgataacutes az Y

tengely koumlruumll

ynarray[14] of integer=(29085310100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő forgataacutes az Y tengely

koumlruumll

zkeretarray[14] of integer=(31070360100) Aacutellandoacute forgataacutes a Z tengely

koumlruumll

zparray[14] of integer=(3607038085) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő pozitiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

znarray[14] of integer=(36085380100) Egeacuterbillentyű nyomaacutesaacuteig

toumlrteacutenő negatiacutev iraacutenyuacute

forgataacutes a Z tengely koumlruumll

44

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 45: 3D Grafika És Animáció

Procedure negyed(xyinteger)

Funkcioacute

Eldoumlnti hogy az egeacuter melyik negyedben talaacutelhatoacute az aktuaacutelis negyedre

korlaacutetozza az egeacuter mozgaacutesteruumlleteacutet

Parameacuteterek

x aktuaacutelis x egeacuterkoordinaacuteta

y aktuaacutelis y egeacuterkoordinaacuteta

Visszateacutereacutesi eacuterteacutek -

Megjegyzeacutes Az eljaacuteraacutes meghiacutevaacutesa előtt le kell keacuterdezni az egeacuter koordinaacutetaacuteinak

helyzeteacutet

Function teruletin(xpont1 ypont1 xpont2 ypont2 fmszam almszam alalmensz

integer) boolean

Funkcioacute

A fuumlggveacuteny azt vizsgaacutelja hogy az aktuaacutelis egeacuterpoziacutecioacute a parameacuteterekben

aacutetadott teruumlleten beluumll vanndashe fmszam almszam alamensz nulla eacuterteacutekek

mellett a fuumlggveacuteny tetszőleges teruumlletet vizsgaacutel egyeacutebkeacutent a főmenuuml 00

eacuterteacutekeacutehez viszonyiacutet

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes -

Procedure keret(k1k2k3k4integer)

Funkcioacute

Keretet rajzol a menuumlpontok koumlreacute

Parameacuteterek

k1k2k3k4a keret koordinaacutetaacutei

Procedure Statusz(szovegstring)

Funkcioacute

Staacutetusz sort rajzol a szoveg parameacuteterben megadott uumlzenettel

Parameacuteter

szoveg kiiacuterandoacute uumlzenet

45

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 46: 3D Grafika És Animáció

Procedure menucim(xpont1 ypont1 xpont2 ypont2 fmszam almszam

alalmensz integer szovegstring)

Funkcioacute

A megadott keret koumlzepeacutebe szoumlveget iacuter

Parameacuteterek

xpont1 ypont1 xpont2 ypont2 a vizsgaacutelandoacute teruumllet kereteacutenek koordinaacutetaacutei

kiveacuteve ha valamelyik utolsoacute haacuterom parameacuteter eacuterteacuteke nem nulla

Ekkor az első főmenuumlpont koordinaacutetaacuteihoz viszonyiacutet a fuumlggveacuteny

fmszam almszam alamensz főmenuuml menuuml eacutes almenuumlszaacutemok

Megjegyzeacutes Aacuteltalaacuteban hibauumlzenetekre hasznaacutelja a program

Procedure beolvas(peldastring)

Funkcioacute

Lemezről beolvassa valamelyik peacuteldarajzot

Parameacuteterek

pelda a beolvasandoacute aacutellomaacuteny neve (valami3dg)

Megjegyzeacutes

A tiacutepusos faacutejl szerkezete

fponts=array[14] of integer

IV21 Animal1 egyseacuteg eljaacuteraacutesai eacutes fuumlggveacutenyei

procedure forgat(p1p2p3alfabetagammahrealvar ki1ki2ki3integer)

Funkcioacute

Elforgatja adott szoumlgekkel az adott pont koordinaacutetaacuteit

Parameacuteterek

p1p2p3 az adott pont teacuterbeli koordinaacutetaacutei

alfabetagamma forgataacutes szoumlgei

h a nagyiacutetaacutes illetve kicsinyiacuteteacutes meacuterteacuteke

Kimenő parameacuteterek

ki1ki2ki3 a forgataacutes eredmeacutenyekeacutent kiszaacutemolt pontok eacuterteacutekei

46

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 47: 3D Grafika És Animáció

procedure lapok(abcdinteger)

Funkcioacute

A megadott sorrendben vonalakat rajzol a megadott csuacutecsok koumlruumll

Parameacuteterek

abcd a csuacutecsok szaacutemai amelyeket oumlssze kell koumltni

Megjegyzeacutes A rajzolt alakzatra hataacutessal van a csuacutecsok megadaacutesaacutenak sorrendje

Tehaacutet lapok(1234)ltgtlapok(2314)

function lathato(sz1sz2sz3realabcdintegerhreal)boolean

Funkcioacute

A megadott csuacutecsok koumlreacute rajzolt lap normaacutelvektora eacutes a vetiacutetővektor

segiacutetseacutegeacutevel eldoumlnti hogy az adott lap laacutethatoacute vagy nem

Parameacuteterek

sz1sz2sz3 a forgataacutesi szoumlgek jelenlegi eacuterteacutekei

abcd a poligon csuacutecsainak szaacutema

hnagyiacutetaacutes kicsinyiacuteteacutes eacuterteacuteke

Megjegyzeacutes

A 41 aacutebraacuten laacutethatoacute sorrendben van definiaacutelva a teacuteglatestek csuacutecsainak sorrendje

47

43

12

8

7 5

641 aacutebra

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 48: 3D Grafika És Animáció

Ceacutelomnak tűztem ki hogy a programot tovaacutebb fejlesztem eacutes keacutesziacutetek egy

olyan uacutej verzioacutet amelyik bonyolultabb rajzokboacutel is keacutepes lesz testek haacuterom

dimenzioacutes keacutepeacutet előaacutelliacutetani Ehhez a rajz alapjaacuten meg kell hataacuterozni a koumlvetkező

dolgokat

meg kell aacutellapiacutetani a teacuterben a test csuacutecsainak a helyeacutet

ezekre siacutekokat kell fektetni persze csak a megfelelő csuacutecsokra hogy a test

lapjait kapjuk meg

a siacutekokban meg kell aacutellapiacutetani a csuacutecspontok sorrendjeacutet hogy poligont tudjunk

rajzolni

A hazaacutenkban is igen neacutepszerű program a 3D STUDIO nevű program is a teacuterbeli

aacutebraacutezolaacutessal eacutes az aacutebraacutezolt taacutergyak animaacutelaacutesaacuteval foglalkozik Ezzel a programmal

egy rajz elkeacutesziacuteteacutese sokkal egyszerűbb eacutes gyorsabb mint az eacuten programommal

Igaz a 3D STUDIO pont ellenteacutetesen koumlzeliacuteti meg a teacutemaacutet nem vetuumlleti aacutebraacutekboacutel

aacutelliacutetja elő a haacuterom dimenzioacutes keacutepet hanem előszoumlr haacuterom dimenzioacutes taacutergyakat

rajzol majd ebből előaacutelliacutetja a megfelelő neacutezetek axonometrikus aacutebraacuteit is

48

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 49: 3D Grafika És Animáció

V 3D VIDEO STUDIO

A mai grafikus szabvaacutenykoumlrnyezet csak azoknak a programozoacuteknak

kellemes akik eacutelni akarnak a grafikus feluumllet aacuteltal nyuacutejtott szabvaacutenyos objektum eacutes

eszkoumlzkezeleacutes lehetőseacutegeivel Jellemző keacutepviselőjuumlk a 3D Studio A programot

haacuteromdimenzioacutes keacutepek eacutes animaacutecioacutek keacutesziacuteteacuteseacutere fejlesztetteacutek ki A

haacuteromdimenzioacutes teret haacuterom siacutekbeli szerkesztőfeluumllet segiacutetseacutegeacutevel lehet birtokba

venni A program alapvetően vektorgrafikus de nagyon sok - eddig csak

bitteacuterkeacutepes programokra jellemző tulajdonsaacuteggal is rendelkezik Ezek a

sziacutenezeacutesre sziacutennel toumlrteacutenő kitoumllteacutesre vonatkozoacute jellemzők toumlbbnyire csak a

keacutepfeldolgozoacute programoknaacutel jelentek meg Ilyen jellemző az opacitaacutes nevű

sziacutenerősseacuteg meghataacuterozoacute eszkoumlz Ennek segiacutetseacutegeacutevel aacutetlaacutetszhatoacutesaacutegot

aacutettetszőseacuteget lehet szimulaacutelni Kuumlloumln eacutelmeacuteny a programmal az aacutethataacutesok

keacutesziacuteteacutese

A 3D Studio kuumlloumlnoumlsen oumlsszetett szerteaacutegazoacute a PC szaacutemiacutetoacutegeacutepeken

leginkaacutebb elterjedt 3D animaacutecioacutes program Nem eleacuteg a szaacutemtalan lehetőseacuteget

ismerni eacutelni is kell a lehetőseacutegekkel ami nagyfokuacute kreativitaacutest igeacutenyel A program

sikeres hasznaacutelataacutehoz tehaacutet nem eleacuteg a funkcioacutek ismerete hanem szuumlkseacuteg van

legalaacutebb alapfokuacute geometriai ismeretekre ismerni kell a sziacutenek hataacutesaacutet eacutes tudni

kell a teacuteraacutebraacutezolaacutes alapjait

A 3D Studio egy igen hateacutekony vizuaacutelis 3D modellező eacutes animaacutecioacutes

program Kivaacuteloacutean alkalmas laacutetvaacutenytervek 3 dimenzioacutes animaacutecioacutek keacutesziacuteteacuteseacutere A

programmal nem lehet gyaacutertaacutesi terveket modelleket keacutesziacuteteni nem helyettesiacuteti az

AutoCAD-et A taacutergyakat a 3DS-ben nem fizikailag preciacutezre hanem vizuaacutelisan

megfelelőre tervezzuumlk Ez azt jelenti hogy a taacutergyakroacutel nem kell gyaacutertaacutesi

pontossaacuteguacute terveket keacutesziacuteteni hanem olyanra kell azokat megalkotni hogy azok

szemre szeacutepek legyenek A program ilyen iraacutenyuacute felhasznaacutelaacutesi koumlre miatt nem is

tartalmaz numerikus taacutergyszerkeszteacutesi lehetőseacutegeket nem adhatjuk meg peacuteldaacuteul

a taacutergy alkotoacute pontjait szaacutemszerű poziacutecioacuteval Ennek elleneacutere szuumlkseacuteg eseteacuten

lehetseacuteges a pontos taacutergyszerkeszteacutes hiszen tetszőleges koumlzoumlkkel teacuterraacutecsot

definiaacutelhatunk amelynek raacutecspontjaikhoz igaziacutethatjuk a taacutergyak elemeit

49

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 50: 3D Grafika És Animáció

A program egyik erősseacutege hogy koumlzvetlenuumll keacutepes fogadni a CAD terveket DXF

formaacutetumban iacutegy peacuteldaacuteul az AutoCAD segiacutetseacutegeacutevel leacutetrehozott berendezeacutes

eacutepuumllet terveit a 3DS-be betoumlltve annak kineacutezete meacuteg az elkeacuteszuumllte előtt

megmutathatoacute Megvizsgaacutelhatjuk hogy hogyan fog kineacutezni a tervezett eacutepuumllet

hogyan fog illeszkedni a koumlrnyezeteacutebe Bejaacuterhatjuk a haacutezat ellenőrizhetjuumlk a

feacutenyviszonyait kiproacutebaacutelhatjuk a falak sziacuteneinek toumlbbfeacutele kombinaacutecioacutejaacutet

A program elsősorban egy gyors eacutes hateacutekony animaacutecioacutes eszkoumlz ezeacutert nem

keacutepes hagyomaacutenyos feacutenysugaacuterkoumlveteacuteses keacutepkeacutesziacuteteacutesre mivel ez feletteacutebb

szaacutemiacutetaacutesigeacutenyes Az ilyen programok a feacutenyforraacutesokboacutel kiinduloacute feacutenysugarak uacutetjaacutet

koumlvetik nyomon miacuteg azok el nem hagyjaacutek a keacutep sziacutenhelyeacutet Az eredmeacuteny hogy a

tuumlkroumlződő feluumlletekben megjelenő tuumlkoumlrkeacutep igazaacuten eacutelethű az aacuternyeacutekok

valoacutesaacutegosak a kuumlloumlnboumlző feacutenytoumlreacutesi mutatoacutejuacute koumlzegekben aacutethaladoacute feacuteny valoacuteban

megtoumlrik peacuteldaacuteul az uumlveggoumlmb teacutenylegesen nagyiacutetja a moumlgoumltte levő taacutergy keacutepeacutet

A feacutenysugaacuterkoumlveteacutes eredeti neveacuten ray-tracing helyettesiacuteteacuteseacutere azonban a 3DS

hateacutekony truumlkkoumlket alkalmaz amelyek segiacutetseacutegeacutevel meacutegis keacutesziacutethetuumlnk

aacuternyeacutekokat tuumlkroumlződeacuteseket Ezeket a lehetőseacutegeket joacutel kihasznaacutelva az elkeacuteszuumllt

keacutep eacutelethűseacuteg szempontjaacuteboacutel megkoumlzeliacuteti a valoacutedi ray-tracerek keacutepminőseacutegeacutet

A program 4-es vaacuteltozata maacuter keacutepes az aacuternyeacutekokat de csak azt ray-trace

algoritmussal kiszaacutemolni a szokaacutesos shadow mapping helyett Ez a moacutedszer

azonban eacuteszrevehetően noumlveli a szaacutemiacutetaacutesi időt eacutes a hasznaacutelt memoacuteria nagysaacutegaacutet

pedig nagyon messze aacutell meacuteg a teljes feacutenysugaacuterkoumlveteacutestől A szaacutemiacutetoacutegeacutepes

modellezeacutes leacutenyege azonban nem meruumll ki a fotoacuterealisztikus keacutepek keacutesziacuteteacuteseacuteneacutel

sőt igazaacuteban ez a kisebb felhasznaacutelaacutesi koumlr hiszen ami a valoacutesaacutegban is

elkeacutesziacutethető arra felesleges szaacutemiacutetoacutegeacutep animaacutecioacutet hasznaacutelni Egy csillogoacute-villogoacute

kroacutemozott kanaacutelkeacuteszletről koumlnnyebben keacutesziacutethető keacutep ha lefotoacutezzuk mintha

modellezneacutenk a darabjait Ellenben peacuteldaacuteul egy űrhaacuteboruacute csatajeleneteacutet minden

bizonnyal szaacutemiacutetoacutegeacutepes animaacutecioacute segiacutetseacutegeacutevel egyszerűbb aacutebraacutezolni Egyszerűbb

egy modellezett haacutez falaacuten leacutevő tapeacuteta anyagtulajdonsaacutegait vaacuteltoztatni hogy

megtalaacuteljuk a megfelelőt mint gyors egymaacutesutaacutenban feacutel tucatszor kitapeacutetaacutezni a

valoacutedi szobaacutet

A haacuteromdimenzioacutes programok hasznaacutelataacutehoz szuumlkseacuteg van a szemleacuteletuumlk

megeacuterteacuteseacutere Ez nem bonyolult dolog hiszen a valoacutes vilaacuteg is ugyanezen az

alapelveken nyugszik A 3D Studio egy nagyon joacutel kezelhető logikus feleacutepiacuteteacutesű

eszkoumlz

50

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 51: 3D Grafika És Animáció

Ha a felhasznaacuteloacute azonosul a szemleacuteletmoacutedjaacuteval hasznaacutelata magaacutetoacutel eacuterthetődő

lesz Leginkaacutebb a fotoacutezaacuteshoz vagy a filmkeacutesziacuteteacuteshez hasonliacutet a program

kezeleacutese

Annaacutel is inkaacutebb megfelel a programnak a kameraacutehoz valoacute hasonliacutetaacutesa

mivel a neacutezőpontok kialakiacutetaacutesaacutehoz ez is kameraacutekat hasznaacutel Ezek a kameraacutek csak

elmeacuteletiek de megfelelnek egy valoacutes filmfelvevőnek vagy feacutenykeacutepezőgeacutepnek A

taacutergyakat ugyanuacutegy kell beaacutelliacutetani mint egy feacutenykeacutep vagy film jeleneteacutet eacutes

ugyanuacutegy meg kell vilaacutegiacutetani a helysziacutent Az iacutegy előkeacutesziacutetett keacutepzeletbeli sziacutenhely

alapjaacuten egy megadott pontboacutel megadott iraacutenyba neacutező keacutepzeletbeli kamera

szemszoumlgeacuteből a kameraacutera jellemző parameacuteterek figyelembeveacuteteleacutevel keacutesziacuteti el a

program a keacutesz keacutepet Ha a taacutergynak valamilyen parameacutetere poziacutecioacuteja

anyagtulajdonsaacutega vaacuteltozik eacutes sorozatkeacutepet keacutesziacutetuumlnk akkor animaacutecioacutet kapunk

hasonloacutean mint egy filmforgataacutes soraacuten A program hasznaacutelata soraacuten alapvetően

keacutetfeacutele megjeleniacuteteacutesi moacuteddal talaacutelkozunk Siacutekneacutezet eacutes Perspektiacutevikus neacutezet

Előbbit főleg a taacutergyak keacutesziacuteteacutese soraacuten hasznaacuteljuk eacutes megfelel a hagyomaacutenyos

aacutebraacutezoloacute geometriaacuteban alkalmazott siacutekneacutezetnek ahol a taacutergyakat haacuterom

egymaacutesra merőleges tengelyű teacuterbe helyezzuumlk eacutes olyan iraacutenyboacutel tekintuumlnk raacutejuk

amelyek paacuterhuzamosak a vilaacuteg valamely keacutepzeletbeli tengelyeacutevel Ebből a

neacutezőpontboacutel paacuterhuzamos vetiacutetővonalak segiacutetseacutegeacutevel hozzuk leacutetre a siacutekneacutezeti

keacutepeket Legyen a haacuterom tengely X Y eacutes Z az egyes neacutezeteket pedig azon keacutet

tengely neveacutevel jeloumlljuumlk amely tengelyek aacuteltal meghataacuterozott siacutekra merőleges

vetiacutető vonalakat alkalmaztunk az aacutebraacutezolaacutes soraacuten iacutegy megkuumlloumlnboumlztetuumlnk XZ

XY eacutes ZY neacutezeteket Ezek globaacutelis tengelyek vagyis a keacutepzeletbeli haacuterom

dimenzioacutes teruumlnk egeacuteszeacutere jellemzőek

Szemben maacutes programokkal itt megadhatoacutek hogy a tengelyek koumlzuumll melyik

legyen a meacutelyseacutegeacute magassaacutegeacute eacutes szeacutelesseacutegeacute iacutegy mindenki a sajaacutet

megszokaacutesaacutenak megfelelő tengelyrendszert aacutelliacutethat be Miutaacuten eldoumlntoumlttuumlk hogy

melyik tengely milyen iraacutenyt jeloumll az egyes neacutezeteket elnevezhetjuumlk Szinteacuten

siacutekneacutezet az User View de a vetiacuteteacutes nem felteacutetlen valamely globaacutelis tengellyel

paacuterhuzamosan hanem egy tetszőleges iraacutenyboacutel toumlrteacutenik A maacutesik neacutezeti moacuted a

Camera View valamely kamera szemszoumlgeacuteből tekint a jelenetre Ebben a

neacutezetben maacuter megjelennek a perspektiacuteva jellemzői az araacutenytorzulaacutes eacutes a vonalak

oumlsszetartaacutesa

51

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 52: 3D Grafika És Animáció

V11 Perspektiacuteva

A hagyomaacutenyos perspektiacuteva szemleacutelet egy vizsgaacuteloacute pontboacutel tekint a teacuterbe

ez a neacutezőpont A neacutezőpontboacutel mindig egy konkreacutet pontra iraacutenyul a figyelem ennek

a pontnak a neve laacutetvaacutenykoumlzeacuteppont A neacutezőpontot eacutes a laacutetvaacutenykoumlzeacuteppontot a

laacutetoacutevonal koumlti oumlssze ami egybeesik a kamera hossztengelyeacutevel Erre merőleges a

keacutepsiacutek A keacutepsiacutekon a keacutep nem paacuterhuzamos vetiacutetővonalak hanem a neacutezőpontot

minden egyes pontjaacuteval oumlsszekoumltő vetiacutetővonalak aacuteltal joumln leacutetre

A neacutezőpontboacutel nem tekinthetuumlnk egyszerre minden iraacutenyba a vetiacutetővonalak

csak egy bizonyos viacutezszintes eacutes fuumlggőleges nyiacutelaacutesszoumlgeken eacuterkeznek a

kameraacuteba Ezek a vetiacutetővonalak a vetiacutetősiacutekboacutel kivaacutegnak egy reacuteszletet ez a

keacutepkivaacutegaacutes ami azonos a keacuteppel vagy a vaacuteszonnal Az emberi szem aacutetlagos

laacutetoacuteszoumlge kb 48 fok a 3D Studio kameraacuteja is ekkora eacuterteacutekkel dolgozik A laacutetoacuteszoumlg

meacuterteacuteke nagymeacuterteacutekben befolyaacutesolja a perspektiacutevikus hataacutest A szeacutelesebb

laacutetoacuteszoumlg dinamikusabb eacutelettel telibb keacutepet eredmeacutenyez A laacutetoacuteszoumlg noumlveleacuteseacutevel a

perspektiacuteva egyre jobban torzul megnyuacutelik miacuteg leacutetrejoumln az uacuten halszem hataacutes

A laacutetoacuteszoumlg csoumlkkenteacutese fordiacutetott hataacutest eredmeacutenyez a teacuter meacutelyseacutegi

kuumlloumlnbseacutegei csoumlkkennek a keacutep ellaposodik baacuter koumlzel sem akkora meacuterteacutekben

mint a szeacuteles laacutetoacuteszoumlg eseteacuten de a perspektiacutevikus hataacutes most is torzul csak

eacuteppen fordiacutetott a teacuter zsugorodni laacutetszik

A neacutezőpont aacuteltalaacuteban egy nyugvoacute siacutek foumlloumltt van szemmagassaacutegnyival A siacutek

neve talaj siacutek angolul ground A perpektiacutevikus keacutepen a taacutergy paacuterhuzamos vonalai

oumlsszetartani laacutetszanak egy veacutegtelen taacutevolsaacutegban leacutevő pont feleacute A talajjal

paacuterhuzamos siacutekokon fekvő paacuterhuzamos vonalak oumlsszetartaacutesi pontja egy a talajjal

paacuterhuzamos vonalat rajzolnak ki a veacutegtelenben ez a horizont A neacutezőpont alatti

vonalak laacutetszoacutelag emelkednek az e felettiek suumlllyedni laacutetszanak a horizont feleacute

miacuteg a szemmagassaacutegban leacutevő vonalak laacutetszoacutelag viacutezszintesen koumlzeliacutetenek a

horizonthoz

Az imeacutenti leiacuteraacutesban felteacuteteleztuumlk hogy a neacutezővonal paacuterhuzamos a

talajsiacutekkal ezeacutert a horizont azonos magassaacutegba esik a neacutezőponttal ez azonban

nincs mindig iacutegy Ha a neacutezőpont magasabban van a laacutetvaacutenykoumlzeacuteppontnaacutel a

horizont a neacutezőpont felett laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk Fordiacutetott

esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a neacutezőpont felett

laacutetszik eacutes ekkor magas horizontroacutel beszeacuteluumlnk

52

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 53: 3D Grafika És Animáció

Fordiacutetott esetben amikor a laacutetvaacutenykoumlzeacuteppont van magasabban a horizont a

neacutezőpont alatt laacutetszik Ezt az esetet alacsony horizontnak nevezzuumlk

Ha a keacutepet tisztaacuten taacutergyakboacutel eacutepiacutetjuumlk fel nincs probleacutema a magas eacutes az

alacsony horizontokkal a program helyesen szaacutemiacutetja ki a perspektiacutevaacutet de hibaacutek

adoacutedhatnak ha haacutetteacuterkeacutepet hasznaacutelunk Ebben az esetben a haacutetteacuterkeacutep

horizontjaacutenak egybe kell esnie a jelenet horizontjaacuteval ellenkező esetben

perspektiacuteva hiba joumln ki A horizontok egybeeseacuteseacuteneacutel arra is uumlgyelni kell hogy a

haacutetteacuterkeacutep eacutes a jelenet azonos laacutetoacuteszoumlggel keacuteszuumlljoumln

V12 A kamera

A 3D Studio 35 mmndashes filmfelvevő kameraacuteval egyezik meg A laacutetoacuteszoumlgeacutet is

egy ennek megfelelően a kamera gyuacutejtoacutetaacutevolsaacutegaacuteval lehet megadni Ahhoz hogy

a kameraacutet manipulaacutelni tudjuk előszoumlr is leacutetre kell hozni egyet Toumlbb kamera is

lehet a jelenetben sőt egyszerre akaacuter toumlbb is lehet aktiacutev vagyis toumlbb neacutezet is lehet

kameraneacutezet Az Internetről letoumllthető az OLDCITY3DS faacutejl amelyben maacuter van

kamera definiaacutelva

V13 Sziacutenek

Nem felteacutetlenuumll elegendőek a geometriai definiacutecioacutek eacutes a neacutezőpont

beaacutelliacutetaacutesok a taacutergyaknak anyagjellemzőket is kell adni ahhoz hogy az elkeacuteszuumllő

keacutep megfelelő legyen Legfontosabb anyagjellemző a sziacuten A sziacutenek hataacutesaacutenak

megeacuterteacutese a kiacutevaacutent effektusokhoz valoacute kivaacutelasztaacutesuk fontos dolog a modellezeacutes

soraacuten A sziacuten a taacutergy feluumlleteacutenek jellemzője

53

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek
Page 54: 3D Grafika És Animáció

Felhasznaacutelt irodalom

[1] Pogaacutets Ferenc Vektorgeometria Peacuteldataacuter

Műszaki Koumlnyvkiadoacute Budapest 1974

[2] Hajoacutes Gyoumlrgy Bevezeteacutes a geometriaacuteba

Nemzeti tankoumlnyvkiadoacute Budapest 1971

[3] Angster Erzseacutebet ndash Kerteacutesz Laacuteszloacute Turbo Pascal 60

[4] Pirkoacute Joacutezsef 3D Perspektiacutevikus Grafika IBM PC-n Turbo Pascalban

[5] Paacutezmaacuteny Aacutegnes - Permay Eacuteva Laacutetaacutes eacutes aacutebraacutezolaacutes

Gimnaacutezium I-III Tankoumlnyvkiadoacute

Budapest 1991

[6] Fuumlzi Jaacutenos 3D grafika eacutes animaacutecioacute IBM PC-n

Computerbooks Budapest 1995

54

  • I AZ EMBERI LAacuteTAacuteS EacuteS A PERSPEKTIacuteVIKUS GRAFIKA
    • I1 A laacutetott keacutep felfogaacutesa
    • I2 A laacutetaacutes bioloacutegiaacuteja keacutepalkotaacutes az emleacutekezet segiacutetseacutegeacutevel
      • I21 Szemuumlnk feleacutepiacuteteacutese
      • I22 A laacutetaacutes alapjai
      • I23 A visszavert feacuteny eacuterzeacutekeleacutese
      • I24 Laacutetott keacutepek kiegeacutesziacuteteacutese a vizuaacutelis emleacutekezet segiacutetseacutegeacutevel
      • I25 Keacutepek lekeacutepzeacutese
        • I3 A sziacutenlaacutetaacutes eacutes a laacutetaacutes egyeacuteb sajaacutetossaacutegai
          • I31 Sziacutenek eacuterzeacutekeleacutese
          • I32 Laacutetaacutesunk időbeli felbontaacutesa
          • I33 A sziacutenlaacutetaacutes egyeacuteb jellemzői
          • I34 A sziacutenkevereacutes keacutet elterjedt moacutedszere
          • I35 Alakzatlaacutetaacutes
              • II MATEMATIKAI ALAPOK
                • II1 Testek felsziacuteneacutenek koumlzeliacuteteacutese
                • II2 Vektorok R2-ben eacutes R3-ban
                  • II21 Iraacutenyiacutetott szakaszok
                  • II22 Vektorok jellemzői
                  • II23 Vektorok oumlsszege
                  • II24 Vektorok szorzaacutesa szaacutemmal
                  • II25 Vektorok lineaacuteris kombinaacutecioacuteja a teacuter dimenzioacuteja
                  • II26 Vektorok megadaacutesa koordinaacutetaacutekkal
                  • II27 Egyenesek parameacuteteres egyenletei
                    • A 26 aacutebra jeloumlleacuteseit hasznaacutelva ro(xoyo)a Po ponthoz vezető helyvektor Az egyenes tetszőleges P futoacutepontjaacutehoz vezető helyvektor r(xy)
                      • II28 Vektorok szorzaacutesa
                        • II 2 8 1 A skalaacuteris szorzat
                        • II282 A vektoriaacutelis szorzat
                          • II29 Pont eacutes egyenes taacutevolsaacutega
                            • II 3 Maacutetrixszaacutemiacutetaacutes
                              • II31 Maacutetrixok jellemzői
                              • II32 Műveletek maacutetrixokkal
                                • II321 Maacutetrixok oumlsszeadaacutesa
                                • II322 Maacutetrix szorzaacutesa skalaacuterral
                                • II323 Maacutetrixok szorzaacutesa
                                  • III GEOMETRIAI TRANSZFORMAacuteCIOacuteK
                                    • III1 Transzformaacutecioacutek haacuterom dimenzioacuteban
                                      • III11 Haacuteromdimenzioacutes forgataacutes
                                      • III12 Vetiacuteteacutesi tiacutepusok
                                      • III13 Laacutethatoacutesaacuteg
                                          • IV 3D GRAFIKA SZERKESZTŐPROGRAM BEMUTATAacuteSA
                                            • IV1 3D Grafika szerkesztőprogram 10 verzioacutejaacutenak felhasznaacuteloacutei keacutezikoumlnyve
                                            • IV 2 A program folyamataacutebraacuteja
                                            • IV3 A program eljaacuteraacutesai eacutes fuumlggveacutenyeinek leiacuteraacutesa
                                              • V 3D VIDEO STUDIO
                                                • V12 A kamera
                                                • V13 Sziacutenek