GÁBOR DÉNES FŐISKOLA 3D GRAFIKA ÉS ANIMÁCIÓ 180/98 OLÁH ZOLTÁN BUDAPEST
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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