clean-tool.ru

Vaivorykštis audinys – muare: kokia tai medžiaga? Kas yra muarė ir spalvų iškraipymas? Muaro efekto konvekcinis laboratorinis darbas.

muare, audinio pavadinimas) yra raštas, atsirandantis, kai du periodiniai tinklelio raštai dedami vienas ant kito. Šis reiškinys atsiranda dėl to, kad pasikartojantys dviejų modelių elementai seka šiek tiek skirtingais dažniais ir arba sutampa vienas su kitu, arba sudaro tarpus.

Muaro raštas pastebimas, kai skirtingos tiulio užuolaidų dalys dedamos viena ant kitos.

„Muaro“ sąvoka kilusi iš audinio muare, kurio apdailoje buvo panaudotas šis reiškinys.

Muaro raštas atsiranda skaitmeniniu būdu fotografuojant ir nuskaitant tinklelius ir kitus periodinius vaizdus, ​​jei jų periodas yra artimas atstumui tarp šviesai jautrių įrangos elementų. Šis faktas naudojamas viename iš banknotų apsaugos nuo padirbinėjimo mechanizmų: ant banknotų uždedamas bangas primenantis raštas, kurį nuskenavus gali pasidengti labai pastebimu raštu, išskiriančiu padirbtą nuo originalo.

Skaitmeninis vaizdo apdorojimas

Muaro atsiradimas nuskaitymo metu

Kasdieniame gyvenime muare dažnai atsiranda nuskaitant spausdintus vaizdus. Taip nutinka todėl, kad skaitytuvas iš naujo rastruoja vaizdą, kuriame jau yra originalus rastras. Paprasčiau galima įsivaizduoti taip: jei paimsite atsekamąjį popierių su vienu ornamentu ir uždėsite ant atsekamojo popieriaus su tuo pačiu ornamentu, bet pavaizduotu kitu kampu, tada gautas ornamentas skirsis ir nuo pirmojo, ir nuo antrojo. . Jei įdėsite juos taip, kad jie sutaptų, tada pirmasis ornamentas sutaps su antruoju.

Apvalios „rozetės“ ​​dviejų stačiakampių sankirtoje sukelia vaizdo iškraipymą, kuris matomas pirmoje nuotraukoje.

Muaro atsiradimas atrankos proceso metu

Muare taip pat gali atsirasti dėl netinkamo kampų tarp pagrindinių spalvų linijų nustatymo ekrano metu. Tiesą sakant, abu yra dviejų rastrinių linijų rinkinių trukdžiai. Yra keletas muaro rozečių tipų, pagal kurių išvaizdą dažnai galite sužinoti muaro priežastį.

Iš tikrųjų nuskaitymas yra signalų moduliavimas skaitytuvo tinklelio mazguose pagal tipografinių rastro mazgų ryškumą. Bendra forma rezultatas yra dviejų moduliuotų sinusoidų (gardelių) su skirtingais erdvinių svyravimų periodais sandauga. Viena harmonika gali turėti didesnį periodą, lygų abiejų gardelių periodų sumai, o tai sukelia muare. Antrasis visada turi periodą, lygų skirtumo tarp grotelių periodų moduliui, ir išnyksta, nes jo negalima įgyvendinti esant tam tikram nuskaitymo skyriui.

Dažai, turintys įtakos muarei

Spausdinant bet kokiu dažų rinkiniu, intensyviausias (tamsiausias) rašalas, kurio vertė yra 30–70 % dideliame plote, gali sudaryti muare. Tai yra, jei CMYK nuotraukoje juodas kanalas nedominuoja (<10-15 %) то вероятность возникновения различимого глазом муара минимальна. Таким образом можно почти не обращать внимание на жёлтый канал CMYK фотографии. Угол поворота растра между самыми проблемными каналами должен быть как можно ближе к 45°.

Spausdinant „kietą“ (tai yra su >95% užpildu), sąvoka „rastrinis pasvirimo kampas“ praktiškai išnyksta (net jei kalbame apie fotografiją).

taip pat žr

  • Bangų trukdžiai – muaro raštas sukuria skirtingo ilgio ar krypčių bangų superpoziciją.
  • Vernier - skalių sutapimas su skirtingais aukščiais sukuria lygiagrečių linijų muaro modelį ( Anglų).

Parašykite apžvalgą apie straipsnį "Moire modelis"

Nuorodos

  • (nepasiekiama nuoroda - istorija)

Muaro raštą apibūdinanti ištrauka

- Trečia, sakiau, trečia, - trumpai sušuko princas, atstūmęs laišką ir, alkūnėmis atsirėmęs į stalą, išsitraukė užrašų knygelę su geometrijos piešiniais.
- Na, ponia, - pradėjo senis, pasilenkdamas prie dukters virš sąsiuvinio ir padėdamas vieną ranką ant kėdės, ant kurios sėdėjo princesė, atlošo, kad princesė iš visų pusių jautėsi apsupta to tabako ir senatviška. aitrus tėvo kvapas, kurį ji žinojo taip ilgai. - Na, ponia, šie trikampiai panašūs; ar norėtum pamatyti, kampas abc...
Princesė baimingai pažvelgė į žėrinčias tėvo akis arti jos; jos veide mirgėjo raudonos dėmės, ir buvo aišku, kad ji nieko nesupranta ir taip bijo, kad baimė jai neleis suprasti visų tolesnių tėvo interpretacijų, kad ir kokios aiškios jos būtų. Ar kaltas mokytojas, ar kaltas mokinys, kiekvieną dieną kartojosi tas pats: princesės akys aptemdavo, ji nieko nematė, nieko negirdėjo, tik jautė prie savęs sausą griežto tėvo veidą, jautė jo. kvėpuoti ir užuosti ir galvojo tik apie tai, kaip ji galėtų greitai išeiti iš biuro ir suprasti problemą savo atviroje erdvėje.
Senolis neteko kantrybės: su dideliu triukšmu stūmė kėdę, ant kurios sėdėjo, stengėsi nesijaudinti ir kone kaskart susijaudindavo, keikdavosi, kartais išmesdavo sąsiuvinį.
Princesė suklydo atsakydama.
- Na, kodėl gi ne kvailys! - sušuko princas, atstumdamas sąsiuvinį ir greitai nusisukdamas, bet tuoj pat atsistojo, apėjo, rankomis palietė princesės plaukus ir vėl atsisėdo.
Jis priėjo arčiau ir tęsė savo aiškinimą.
„Neįmanoma, princese, tai neįmanoma“, – pasakė jis, kai princesė, paėmusi ir užvertusi sąsiuvinį su paskirtomis pamokomis, jau ruošėsi išeiti, – matematika yra puikus dalykas, panele. Ir aš nenoriu, kad būtumėte kaip mūsų kvailos damos. Ištvers ir įsimylės. „Jis paglostė jos skruostą ranka. - Nesąmonė iššoks tau iš galvos.
Ji norėjo išeiti, jis gestu ją sustabdė ir nuo aukšto stalo ištraukė naują nepjaustytą knygą.
- Štai dar vienas Sakramento raktas, kurį tau siunčia tavo Eloize. Religinis. Ir aš niekam nesikišu į tikėjimą... Peržiūrėjau. Imk. Na, eik, eik!
Jis paglostė jai per petį ir užrakino duris.
Princesė Marya grįžo į savo kambarį su liūdna, išsigandusia išraiška, kuri ją retai palikdavo ir bjaurų, liguistą veidą dar labiau bjaurėtų, ir atsisėdo prie savo stalo, iškloto miniatiūriniais portretais ir nusėta užrašų knygelėmis bei knygomis. Princesė buvo tokia pat netvarkinga, kaip ir padorus jos tėvas. Ji padėjo geometrijos sąsiuvinį ir nekantriai atidarė laišką. Laiškas buvo nuo artimiausios princesės draugės nuo vaikystės; ši draugė buvo ta pati Julie Karagina, kuri buvo Rostovų vardadienyje:
Julie rašė:
"Chere et excellente amie, quelle chose terrible et effrayante que l"nebuvimas! J"ai beau me dire que la moitie de mon egzistencija et de mon bonheur est en vous, que malgre la distance qui nous separe, nos coeurs sont unis par des areštas yra neišardomas; le mien se revolte contre la destinee, et je ne puis, malgre les plaisirs et les distractions qui m"entourent, vaincre une bizonyose tristesse cachee que je ressens au fond du coeur depuis notre separation. Courquoi ne sommes nous c etenie, dans votre grand cabinet sur le canape bleu, le canape a trusts? Pourquoi ne puis je, comme il y a trois mois, puiser de nouvelles forces morales dans votre respect si doux, si peacee et si penetrant, respect que j"aimais tant et „Je crois voir devant moi, quand je vous ecris“.
[Brangus ir neįkainojamas drauge, koks baisus ir baisus dalykas yra išsiskyrimas! Kad ir kiek sakyčiau sau, kad pusė mano egzistencijos ir mano laimės slypi tavyje, kad, nepaisant mus skiriančio atstumo, mūsų širdis vienija nenutraukiami saitai, mano širdis maištauja prieš likimą ir, nepaisant malonumų ir trukdžių, Apsupkite mane, aš negaliu nuslopinti paslėpto liūdesio, kurį išgyvenu širdies gilumoje nuo mūsų išsiskyrimo. Kodėl mes nesame kartu, kaip praėjusią vasarą, jūsų dideliame biure, ant mėlynos sofos, ant „išpažinčių“ sofos? Kodėl aš, kaip prieš tris mėnesius, negaliu pasisemti naujos moralinės stiprybės iš tavo švelnaus, ramaus ir skvarbaus žvilgsnio, kurį taip mylėjau ir kurį matau prieš save tuo metu, kai rašau tau?]
Perskaičiusi iki šio taško, princesė Marya atsiduso ir atsigręžė į tualetinį staliuką, kuris stovėjo jos dešinėje. Veidrodyje atsispindėjo bjaurus, silpnas kūnas ir plonas veidas. Akys, visada liūdnos, dabar ypač beviltiškai žiūrėjo į save veidrodyje. „Ji man pamalonina“, – pagalvojo princesė, nusisuko ir toliau skaitė. Tačiau Julie nepamalonino savo draugės: iš tiesų, princesės akys, didelės, gilios ir švytinčios (tarsi šiltos šviesos spinduliai kartais sklinda iš jų siūlais), buvo tokios gražios, kad labai dažnai, nepaisant jos visos bjaurumo. veido, šios akys tapo patrauklesnės už grožį. Tačiau princesė niekada nematė geros išraiškos savo akyse, kurią jos įgaudavo tomis akimirkomis, kai negalvojo apie save. Kaip ir visų žmonių, jos veidas įgavo įtemptą, nenatūralią, blogą išraišką vos pažvelgus į veidrodį. Ji toliau skaitė: 211

Šiuo metu terminas „muaras“ dažniausiai vartojamas apdorojant vaizdą. Nedaug fotografų žino, kad perėjimo iš vieno spalvos atspalvio į kitą efekto pavadinimą suteikė vaivorykštis muarė audinys, kuris kadaise buvo aukščiausios galios atributas.

Šis pavadinimas kilęs iš prancūzų kalbos, kuri reiškia „erzinantis“, „susirūpinęs“. Taip vadinamas šilko vaivorykštinis audinys, kurio paviršiuje, priklausomai nuo apšvietimo kampo, atsiranda bangą primenantis raštas, primenantis medžio žiedus. Norint pasiekti šį efektą, reikalinga nevienalytė medžiagos struktūra, kuri gaunama keliais būdais:

  1. Tankus šilko audinys susukamas tarp įkaitintų cilindrų, dėl to siūlai juda ir sukelia netolygią ant jų krintančios šviesos lūžį. Šis audinys vadinamas gromoir ir yra pats prabangiausias.
  2. Antikvarinė muare gaminama reguliariai keičiant siūlų pynimą pagal tam tikras taisykles, todėl pasikartojantis blizgesys sudaro gana didelį ornamentą.
  3. Keletas retų tinklinių audinių yra išdėstyti atsitiktine tvarka vienas ant kito, o dėl pluoštų susikirtimo neatitikimo šviesa mirga ir sukuria įdomius optinius efektus. Šis audinys vadinamas daugiasluoksniu muare.

Antikvarinis muare - audinys, kuris buvo pagamintas tik iš šilko, buvo labai brangus ir prestižinis. Praėjusio amžiaus viduryje jai pradėtas naudoti acetatas, o vėliau ir sintetika, todėl ši medžiaga tapo prieinamesnė, tačiau apdirbimo būdai ir pagrindinės jos atmainos išliko tokios pačios. Bet kokiu atveju, muaro pynimas visada yra lygus ir vienodos pluošto spalvos.

Kas gaminama iš muaro?

Šios medžiagos gimtinė yra Prancūzija. Prabangus ir brangus muaro audinys priklausė aukščiausiems visuomenės sluoksniams. Iš jo buvo gaminami prabangūs kostiumai ir suknelės tituluotiems asmenims, o muare juostelė buvo garbės ženklas. Ši vaivorykštės šilko juostelės reikšmė išlikusi iki šių dienų, prie jos tvirtinamas ordinas ar medalis, galima nešioti vietoje atitinkamo apdovanojimo.

Brangiausias buvo gromoire, kurį dažnai galima pamatyti iškilminguose XVIII amžiaus portretuose. Pigesnė antikvarinė muare ir daugiasluoksnė muare buvo panaudota puošiant elegantiškas vakarines ir vestuvines sukneles, puošiant prabangius butus.

Šio audinio mados banga įvyko praėjusio amžiaus pradžioje, kai „triukšminga muaro suknelė“ tapo išskirtinio grožio sinonimu.

Šiuo metu šilko muarė yra išskirtinis audinys, dažniau naudojamos medžiagos acetato ir sintetikos pagrindu. Jie labai gražūs ir įmantrūs, gerai išlaiko apimtį ir reikalauja paprasčiausio kirpimo, tačiau jų nederėtų naudoti gaminiams, kurie nuolat veikiami trinties (kelnės, aptempti sijonai, baldų užvalkalai). Tačiau muare užuolaidos ant langų atrodo nepaprastai gražiai ir stilingai esant bet kokiam apšvietimui.

Įvadas

Mūsų šalyje ir užsienyje vykdomi dideli darbai kuriant esamus ir kuriant naujus eksperimentinio įtempių ir deformacijų tyrimo metodus. Pastaraisiais metais plačiai paplito naujas eksperimentinio deformacijų ir įtempių tyrimo metodas, kuriame naudojamas muaro efektas, atsirandantis, kai viena ant kitos uždedamos pakankamai smulkios grotelės (Frenelio grotelės) ir susideda iš kintamo modelio formavimo. tamsios ir šviesios muaro juostelės, pernešančios informaciją apie objekto topologiją ir judesius. Dėl daugybės puikių savybių muaro efektas gali būti naudojamas kaip tikslaus ir vizualaus matavimo metodo pagrindas.

Ryšium su kompiuterių technologijų plėtra, elektronų projekcijos muaro metodas tapo plačiai paplitęs.

Tolesnis metodo tobulinimas reikalauja tyrimų. Muaro raštų apdorojimo metodų analizė ypač reikalinga norint gauti tikslesnę informaciją apie tiriamo paviršiaus topologiją. Norėdami tai padaryti, turite surinkti instaliaciją į minimalų rinkinį (projektorius, kamera, kompiuteris) ir atlikti eksperimentų seriją. Norint sumažinti diegimo ir eksperimentavimo išlaidas, verta sukurti programą, kuri pagal nurodytus parametrus imituotų muaro efektą.

Kurdami valdymo sistemas, kuriose naudojamas muaro efektas, galite patikrinti, koks muaro raštas bus gautas su tam tikrais darbinio paviršiaus, darbinio rastro, atskaitos rastro, kameros ir projektoriaus padėties parametrais.

Muaro efektas

Muaro efekto pobūdis

Muare yra raštas, susidedantis iš kintančių tamsių ir šviesių juostelių, atsirandančių dėl dviejų ar daugiau Frenelio grotelių, sudarytų iš linijų, taškų ar kitų geometrinių elementų, superpozicijos. Kasdieniame gyvenime tai galima pastebėti šilko audiniuose, kurie gavo panašų pavadinimą. Šis reiškinys atsiranda dėl ribotos stebėjimo įrenginio raiškos, nesvarbu, ar tai būtų žmogus, ar kamera. Kai dedamos dvi linijų sistemos, šviesos intensyvumas vaizdo paviršiuje pasikeičia ir dėl šio intensyvumo pokyčio atsiranda muaro raštas.

1 paveiksle pavaizduoti muaro briaunų modeliai, atsirandantys, kai du lygiagrečių to paties žingsnio linijų tinkleliai yra vienas kito atžvilgiu pasukti nedideliu kampu (1.a pav.) ir taip pat turi nedidelį žingsnio skirtumą. lygiagrečiai (1.b pav.).

Muaro efektas

Kai lygiagrečiai dedamos dvi tiesių lygiagrečių linijų sistemos, turinčios nedidelį žingsnio skirtumą, šviesios muaro juostos centras sutampa su tašku, kuriame yra sujungtos abiejų tinklelių šviesos linijos.

Tamsios muaro juostelės centras sutampa su tašku, kuriame vienos tinklelio tamsioji linija persidengia su kito šviesia linija. Vidutinis perduodamos arba atspindėtos šviesos intensyvumas nuolat kinta nuo pirmojo taško iki antrojo (priklausomai nuo tarpo dydžio). Atstumas tarp dviejų gretimų tamsių (arba šviesių) muaro kraštų centrų yra pakraščio žingsnis.

Kai dvi tiesių lygiagrečių to paties žingsnio linijų sistemos yra viena kitos atžvilgiu pasuktos nedideliu kampu, tamsios muare juostos vidurys sutampa su vieta, kur tamsios abiejų tinklelių linijos persidengia viena su kita. Tarp eilučių vidutinis intensyvumas kinta tiesiškai ir yra 0,5 balto muaro pakraščio ir 0,0 tamsaus muaro pakraščio, jei tamsios ir šviesios tinklelio linijos yra vienodo pločio.

Apskritai, šviesos intensyvumo pasiskirstymas tarp šviesių ir tamsių linijų priklauso nuo šviesių ir tamsių tinklelio linijų pločių santykio. Didžiausio kontrasto juostelės, tai yra didžiausias šviesos intensyvumo skirtumas, einančios per šviesių ir tamsių juostų vidurius, gaunamos, kai šviesių ir tamsių linijų plotis yra vienodas. Esant bet kokiam šviesių ir tamsių linijų pločių santykiui, didžiausias intensyvumas gaunamas šviesios muaro juostos centre, o tai palengvina centrinių juostelių linijų konstravimą matavimų metu. Todėl muaro efektas yra optinis reiškinys, atsirandantis mechaniniu būdu taikant santykinai šiurkščias tinklelius, kurių dažnis yra daug mažesnis nei šviesos bangų dažnis. Fizinė šviesos prigimtis (bangos ilgis) nėra ypač svarbi šiame reiškinyje, todėl ji kartais vadinama „mechaniniais trukdžiais“.

Siųsti savo gerą darbą žinių bazėje yra paprasta. Naudokite žemiau esančią formą

Studentai, magistrantai, jaunieji mokslininkai, kurie naudojasi žinių baze savo studijose ir darbe, bus jums labai dėkingi.

Paskelbta http://www.allbest.ru

AIŠKINAMASIS PASTABA

kursiniam projektui

disciplinoje: „Mikroprocesorinių sistemų projektavimas“

tema: „Programos, imituojančios muaro efektą, kūrimas“

Kurso projektavimo užduotis

Sukurkite ir parašykite programą, kuri imituotų muaro efektą, apskaičiuokite viršūnes ir sukonstruokite tiriamą plokštumą. Darbe numatyta naudoti modernią programavimo kalbą Visual Basic 2005 ir naujas DirectX 9 technologijas.

Kursinį projektą sudaro 80 puslapių, 13 brėžinių, 4 priedai, panaudoti 5 šaltiniai.

MOURE, MOIRE EFEKTAS, GRINDLIAI, RASTRIS, OPTINĖ AŠIS, MATEMATINIS MODELIS, MODELIAVIMAS, OBJEKTO TOPOLOGIJA, ALGORITMAS, PROGRAMA, MODULIS.

Tyrimo objektas – objektų topologijos nustatymo elektronų projekcijos metodo modelis.

Tyrimo tikslas: elektronų projekcijos metodo modeliavimo programinės įrangos studijavimas ir kūrimas.

Elektronų projekcijos metodo modelio tyrimo ir tobulinimo procese buvo naudojamos šios programinės įrangos programos: Visual Basic 2005, DirectX 9.0 su SDK, MathCAD 13, 3D Studio Max 6.0. Buvo sukurta programa, skirta imituoti muaro efektą. Buvo gauti įvairūs muaro raštai.

Taikymo sritis: ši plėtra gali būti naudojama tiriant muaro metodus, demonstruojant muaro efektą, nustatant deformacijas ant įvairių paviršių.

Įvadas 5

1 . Muaro efektas 6

1.1 Muaro efekto pobūdis 6

1.2 Muaro metodų klasifikacija 8

1.3 Muaro metodai 10

1.4 Matematinis modelis paviršių topologijai tirti naudojant elektroninės projekcijos muaro metodą 15

2 . Techninės ir programinės įrangos kūrimo įrankių pasirinkimas 19

3 . Programinės įrangos muaro efektui modeliuoti kūrimas 20

3.1 Pagrindinis programos algoritmas, moduliuojantis muaro efektą 20

3.2 Programos sąsaja 23

Išvada 33

Naudotų šaltinių sąrašas 34

A priedas 35

B priedas 63

B priedas 80

D priedas 81

Įvadas

Mūsų šalyje ir užsienyje vykdomi dideli darbai kuriant esamus ir kuriant naujus eksperimentinio įtempių ir deformacijų tyrimo metodus. Pastaraisiais metais plačiai paplito naujas eksperimentinio deformacijų ir įtempių tyrimo metodas, kuriame naudojamas muaro efektas, atsirandantis, kai viena ant kitos uždedamos pakankamai smulkios grotelės (Frenelio grotelės) ir susideda iš kintamo modelio formavimo. tamsios ir šviesios muaro juostelės, pernešančios informaciją apie objekto topologiją ir judesius. Dėl daugybės puikių savybių muaro efektas gali būti naudojamas kaip tikslaus ir vizualaus matavimo metodo pagrindas.

Ryšium su kompiuterių technologijų plėtra, elektronų projekcijos muaro metodas tapo plačiai paplitęs.

Tolesnis metodo tobulinimas reikalauja tyrimų. Muaro raštų apdorojimo metodų analizė ypač reikalinga norint gauti tikslesnę informaciją apie tiriamo paviršiaus topologiją. Norėdami tai padaryti, turite surinkti instaliaciją į minimalų rinkinį (projektorius, kamera, kompiuteris) ir atlikti eksperimentų seriją. Norint sumažinti diegimo ir eksperimentavimo išlaidas, verta sukurti programą, kuri pagal nurodytus parametrus imituotų muaro efektą.

Kurdami valdymo sistemas, kuriose naudojamas muaro efektas, galite patikrinti, koks muaro raštas bus gautas su tam tikrais darbinio paviršiaus, darbinio rastro, atskaitos rastro, kameros ir projektoriaus padėties parametrais.

1. Muaro efektas

1.1 Muaro efekto pobūdis

Muare yra raštas, susidedantis iš kintančių tamsių ir šviesių juostelių, atsirandančių dėl dviejų ar daugiau Frenelio grotelių, sudarytų iš linijų, taškų ar kitų geometrinių elementų, superpozicijos. Kasdieniame gyvenime tai galima pastebėti šilko audiniuose, kurie gavo panašų pavadinimą. Šis reiškinys atsiranda dėl ribotos stebėjimo įrenginio raiškos, nesvarbu, ar tai būtų žmogus, ar kamera. Kai dedamos dvi linijų sistemos, šviesos intensyvumas vaizdo paviršiuje pasikeičia ir dėl šio intensyvumo pokyčio atsiranda muaro raštas.

1 paveiksle pavaizduoti muaro briaunų modeliai, atsirandantys, kai du lygiagrečių to paties žingsnio linijų tinkleliai yra vienas kito atžvilgiu pasukti nedideliu kampu (1.a pav.) ir taip pat turi nedidelį žingsnio skirtumą. lygiagrečiai (1.b pav.).

Muaro efektas

Kai lygiagrečiai dedamos dvi tiesių lygiagrečių linijų sistemos, turinčios nedidelį žingsnio skirtumą, šviesios muaro juostos centras sutampa su tašku, kuriame yra sujungtos abiejų tinklelių šviesos linijos.

Tamsios muaro juostelės centras sutampa su tašku, kuriame vienos tinklelio tamsioji linija persidengia su kito šviesia linija. Vidutinis perduodamos arba atspindėtos šviesos intensyvumas nuolat kinta nuo pirmojo taško iki antrojo (priklausomai nuo tarpo dydžio). Atstumas tarp dviejų gretimų tamsių (arba šviesių) muaro kraštų centrų yra pakraščio žingsnis.

Kai dvi tiesių lygiagrečių to paties žingsnio linijų sistemos yra viena kitos atžvilgiu pasuktos nedideliu kampu, tamsios muare juostos vidurys sutampa su vieta, kur tamsios abiejų tinklelių linijos persidengia viena su kita. Tarp eilučių vidutinis intensyvumas kinta tiesiškai ir yra 0,5 balto muaro pakraščio ir 0,0 tamsaus muaro pakraščio, jei tamsios ir šviesios tinklelio linijos yra vienodo pločio.

Apskritai, šviesos intensyvumo pasiskirstymas tarp šviesių ir tamsių linijų priklauso nuo šviesių ir tamsių tinklelio linijų pločių santykio. Didžiausio kontrasto juostelės, tai yra didžiausias šviesos intensyvumo skirtumas, einančios per šviesių ir tamsių juostų vidurius, gaunamos, kai šviesių ir tamsių linijų plotis yra vienodas. Esant bet kokiam šviesių ir tamsių linijų pločių santykiui, didžiausias intensyvumas gaunamas šviesios muaro juostos centre, o tai palengvina centrinių juostelių linijų konstravimą matavimų metu. Todėl muaro efektas yra optinis reiškinys, atsirandantis mechaniniu būdu taikant santykinai šiurkščias tinklelius, kurių dažnis yra daug mažesnis nei šviesos bangų dažnis. Fizinė šviesos prigimtis (bangos ilgis) nėra ypač svarbi šiame reiškinyje, todėl ji kartais vadinama „mechaniniais trukdžiais“.

1.2 Muaro metodų klasifikacija

Muaro efektas gali būti naudojamas sudėtingų mechanizmų ir struktūrų poslinkiams ir deformacijoms tirti. Visų pirma, kai kurie labai tikslūs ir jautrūs prietaisai deformacijoms matuoti (mechaniniai deformacijų matuokliai, naudojantys muaro efektą) yra pagrįsti šiuo efektu. Tačiau didesnį susidomėjimą kelia paviršių topologijos gavimas, kurio pagrindu galima gauti deformacijos lauką virš tiriamo objekto paviršiaus. Čia muaro efektas leidžia sukurti iš esmės naują deformacijų tyrimo metodą, kuris gerokai papildo esamus eksperimentinius metodus. Poslinkiams ir deformacijoms tirti naudojami keli muaro kraštelių metodai, kurie skiriasi tinklelių, naudojamų formuojant muaro kraštų raštus, tipu ir sprendžiamų problemų pobūdžiu.

Tinklelis dedamas tiesiai ant tiriamos dalies paviršiaus.

Ekrane pritaikytas tinklelis atsispindi nuo tiriamo objekto veidrodinio paviršiaus.

Tinklelis projektuojamas ant tiriamo objekto paviršiaus naudojant projekcinį įrenginį.

Muaro raštas gaunamas naudojant tinklelį, uždėtą ant tiriamo objekto paviršiaus ir šio tinklelio šešėlius arba atspindžius, šiuo atveju tiriamas paviršiaus profilis.

Kaip tinkleliai naudojamos optinių trukdžių linijų šeimos.

Naudojamas tinklelio vaizdas, kuris iškraipomas dėl lūžio, kai šviesa praeina per skaidrią tiriamą dalį.

Reikėtų pažymėti, kad nors pirmieji du metodai jau plačiai naudojami, kiti vis dar yra nereikšmingi.

Visi minėti deformacijų tyrimo metodai turi daug bendro, todėl juos galima laikyti muaro juostinio metodo variacijomis. Visų pirma, jie turi bendrų muaro juostelių raštų, atsirandančių dėl mechaninio tinklelio sistemų perdangos, naudojimas. Patogiausias variantas yra projektuojami tinkleliai. Vieno (arba abiejų) tinklelio iškraipymas (deformacija) yra susijęs su tiriamo paviršiaus deformacijomis. Gautos muaro juostelės yra tam tikrų geometrinių dydžių lygios linijos (poslinkiai, pasvirimo kampai, įlinkiai, kreivumas ir pan. arba jų deriniai). Pasirodo, tiriamas kiekis pateikiamas jo lygio linijų paveikslėlio pavidalu. Lygio linijose ji išlieka pastovi, tačiau pereinant nuo vienos muaro juostos prie gretimo pasikeičia tam tikra pastovia reikšme.

Visos operacijos, susijusios su muaro paveikslų apdorojimu, yra bendros visiems metodams, būtent:

tiesių, iš kurių išnyksta funkcijos dalinės išvestinės ir kurios padalina visą tiriamąją sritį į sritis su tuo pačiu išvestinių ženklu, nustatymas;

funkcijų pokyčių įvairiomis kryptimis grafikų sudarymo metodai;

grafinio ar skaitinio diferencijavimo ir funkcijų integravimo metodai;

dalinių išvestinių nustatymo metodas, sujungiant su diferenciacijos krypties poslinkiu funkcijų lygmenų linijų vaizdus (mechaninė diferenciacija);

apkrovos arba laiko parametro išvestinių išvestinių gavimo metodas, kurį sudaro lygių linijų, atitinkančių pakrovimo etapo arba laiko intervalo pradžią ir pabaigą, uždėjimas.

Visiems pirmiau minėtiems metodams būdingi eksperimentiniai metodai, skirti gauti muaro kraštų raštus:

dvigubas tinklelio fotografavimas prieš ir po deformacijos;

nufotografuoti muaro kraštų raštą, pastebėtą tiesiogiai eksperimento metu, taikant atskaitos tinklelį ant detalės paviršiaus arba ant kameros šlifuoto stiklo;

gautus muare pakraščius po eksperimento superpozicijos būdu;

elektroninis apdorojimas.

Muaro pakraščio metodas turi daug bendro su poliarizacijos-optiniu metodu. Juostų raštų apdorojimo, juostelių eiliškumo nustatymo ir tam tikrų kiekių apskaičiavimo pagal juostelių eiles šiais metodais technika yra gana panaši. Tačiau apdorojant muaro kraštų raštus šiuo metu naudojama tik diskreti informacija, kurią vaizduoja vidurinės pakraščių linijos. Taikant muaro metodą, pakraščių raštuose taip pat yra nuolatinė informacija, tai yra, bet kuriame lauko taške šviesos intensyvumas tam tikru būdu yra susijęs su išmatuotomis funkcijomis. Pastaraisiais metais bandoma užmegzti tokį ryšį, specialiais instrumentais galima išmatuoti šviesos intensyvumą intervaluose tarp šviesių ir tamsių muaro pakraščių centrų.

1.3 Muaro metodai

A) Muaro juostelės metodas, naudojant tinklelį, uždėtą ant dalies. Metodo esmė yra ta, kad linijų tinklelis uždedamas tiesiai ant tiriamos dalies paviršiaus ir deformuojamas kartu su paviršiumi. Kai tinkleliai prieš ir po deformacijos uždedami ant jų, atsiranda muaro kraštelių raštas. Superpozicija atliekama nufotografuojant deformuotą tinklelį per nedeformuotą „atskaitos“ tinklelį, uždėtą ant skaidrios plokštės ir uždėtą ant detalės paviršiaus, arba nufotografuojant tinklelį, uždėtą ant detalės paviršiaus prieš ir po deformacijos ant tos pačios arba skirtingi negatyvai. Tokiu atveju galite naudoti tiek atspindėtą, tiek sklindančią (skaidrios dalies atveju) šviesą. Paprastai kalbant, gali būti naudojamos skirtingos linijų šeimos, taikomos sudėtingų formų dalių paviršiui. Tačiau lengviausiai nustatomos plokščių paviršių, ant kurių yra lygiagrečių linijų tinklelis, deformacijos. Šis atvejis kelia didžiausią praktinį susidomėjimą.

Šis metodas yra universaliausias ir plačiausiai naudojamas užsienyje, o vidaus literatūroje jis dar nėra pakankamai aptartas. Pirmąjį deformacijų tyrimą šiuo metodu, matyt, 1948 metais atliko Welleris ir Sheppardas. Nuo to laiko, daugiausia per pastarąjį dešimtmetį, buvo paskelbta nemažai darbų, kuriuose aprašomi įvairūs muaro raštų analizės požiūriai ir įvairūs metodo pritaikymai.

B) Muaro kutais metodas naudojant atspindėtą tinklelį. Jei ant ekrano užtepsite tiesių lygiagrečių linijų tinklelį ir nufotografuosite šio tinklelio atspindį pirmiausia nuo plokščio veidrodinio paviršiaus, o paskui iš lenkto ant to paties negatyvo, tada dėl dviejų atspindėtų šeimų superpozicijos. linijos, susidaro muaro kraštų vaizdas, iš kurio galima spręsti apie kreivinių paviršių prigimtį. Grafiškai arba skaitmeniniu kampų integravimu galima nustatyti paviršiaus profilį (ty vertikalius atstumus tarp įvairių paviršiaus taškų arba paviršiaus taškų ir tam tikros atskaitos plokštumos). Metodas leidžia nustatyti normalių, kreivumo ir šiek tiek išlenktų paviršių profilių sukimosi kampus.

Kaip žinoma, plokštės vidurinio paviršiaus kreivumas visiškai lemia jos deformuotą ir įtemptą būseną. Todėl šis metodas plačiai paplito tiriant plokščių lenkimą.

Šis metodas yra natūralus veidrodinių optinių metodų, skirtų kampams tirti, ir atspindėto tinklelio metodo plėtra. Veidrodinis optinis metodas tiksliai išmatuoti kampus buvo žinomas labai seniai. Sukant plokščią veidrodį nedideliu kampu, pasirinkus atitinkamą „optinę svirtį“ (atstumą nuo veidrodžio iki tam tikros atskaitos skalės, kuria juda nuo veidrodžio atsispindėjęs spindulys) ir matuojant atspindėto pluošto judėjimą, galima nustatyti. veidrodžio sukimosi kampas beveik bet kokiu reikiamu tikslumu. Šis principas naudojamas tiek tiesioginiam kampų matavimui, tiek įvairiuose matavimo prietaisuose, pavyzdžiui, veidrodiniame optiniame deformacijos matuoklyje.

B) Muaro pakraščio metodas, naudojant projektuojamo tinklelio atspindį. Panašiai kaip ir ankstesniame metode, galima sukurti muare raštus. Gaunama uždedant atspindėtą tinklelį, projektuojamą ant tiriamos dalies paviršiaus naudojant projekcinį aparatą. Tačiau ši veislė iki šiol tapo daug mažiau paplitusi nei ankstesni metodai.

Tinklas projektoriumi projektuojamas ant tiriamos dalies paviršiaus ir nuo jo atspindimas ant šviesai jautriu fotopopieriumi padengto ekrano. Tinklo atspindžiai prieš ir po apkrovos sudaro muaro kraštų vaizdą, kuris, kaip ir Ligtenbergo metodu (schemos skiriasi tik spindulių kryptimi), yra tinklelio sukimosi kampų lygio linijos. normalus tiriamam paviršiui. Šis metodas, kaip ir ankstesnis, yra taikomas tiriant plokščių ir lenktų paviršių lenkimą, o kampų, kreivumo ir paviršiaus įlinkių apskaičiavimo pagal muaro juostelių raštus formulės yra visiškai panašios.

Patogesnį būdą aprašo Theokaris. Tinklelis projektuojamas ant tiriamo paviršiaus lygiagrečiu monochromatinės šviesos pluoštu paviršiaus kampu ir tampa įmanoma nufotografuoti tinklelio atspindį. Muaro juostelės taip pat yra normaliojo sukimosi kampų lygio linijos, statmenos tinklelio linijų krypčiai.

D) Elektronų projekcijos metodas. Nagrinėjami muaro efekto išgavimo būdai čia pateikiami apibendrintai. Iš esmės jie yra panašūs ir apdorojami naudojant tą patį matematinį modelį, tačiau, kaip minėta, jie naudojami skirtingomis eksploatavimo sąlygomis.

Elektronų projekcijos metodas, palyginti su jau aptartais metodais, turi nemažai privalumų ir susideda iš šių dalykų: darbinis tinklelis projektoriumi projektuojamas ant objekto, tada nuskaitomas fotoaparatu ir apdorojamas kompiuteriu. Tai yra bendriausias metodo aprašymas. Anksčiau jai įgyvendinti turėjo būti naudojama analoginė projektoriaus ir fotoaparato technologija, tačiau dabartiniame techninių priemonių kūrimo etape, atsiradus multimedijos projektoriams ir skaitmeniniams fotoaparatams, kurių naudojimas leidžia padidinti tikslumą. gautų rezultatų ir nesunkiai juos integruoti į vieną sistemą, iškilo būtinybė peržiūrėti matematinį modelį. Išsamiau panagrinėkime elektronų projekcijos metodo schemą, skirtą paviršių topologijai, remiantis skaitmeninių technologijų naudojimu, nustatyti.

Minimalus reikalingas sistemos komponentų rinkinys yra kompiuteris, multimedijos projektorius ir skaitmeninis fotoaparatas. Norint atlikti didelio masto paviršiaus nuskaitymą, būtina į sistemą įtraukti elementus, užtikrinančius jos mobilumą, tačiau atliekant šį darbą daugiausia bus atsižvelgiama į minimalų rinkinį. Tokios sistemos funkcinė schema pateikta 3 pav.

Funkcinė diagrama

Skaičiai nurodo šiuos sistemos elementus:

Paviršius, kurį reikia ištirti;

Skaitmeninė kamera;

Multimedijos projektorius;

Kompiuteris.

Kompiuteris susintetina tinklelį su nurodytais parametrais, po to paruoštas tinklelis multimedijos projektoriumi projektuojamas ant objekto

Tada vaizdas ant objekto nufotografuojamas skaitmeniniu fotoaparatu ir perkeliamas į kompiuterį, kur vaizdas pirmiausia apdorojamas, kad jis taptų vienspalvis. Įsivaizduojamo rastro sintezė pagal užfiksuoto objekto parametrus. Objekto rastro šviesių juostų centrų ir įsivaizduojamo rastro tamsių juostų centrų išskyrimas, jų perdengimas ir muaro rašto nustatymas.

Paskutinis apdorojimo etapas yra aukščių, atstumų nuo įsivaizduojamo rastro plokštumos iki atitinkamų objekto paviršiaus taškų skaičiavimas.

Taigi; gauname atskirą paviršiaus topologijos vaizdą.

Reikia dar kartą pažymėti, kad ši sistema bet kuriame etape veikia su diskrečiomis reikšmėmis, o naudojami darbiniai ir įsivaizduojami rastrai iš esmės yra virtualūs. Tai svarbi detalė kuriant matematinį modelį.

1.4 Matematinis modelis paviršių topologijai tirti naudojant elektroninės projekcijos muaro metodą

Pereikime prie matematinės metodo pusės aprašymo.

Rastruose esanti informacija yra virtuali – ši padėtis reiškia, kad rastrų parametrai yra jų talpa, t.y. pikselių skaičius – tokios sąvokos kaip fiziniai matmenys šiame modelyje neturi prasmės. Taigi rodomas pikselis įgauna fizinius matmenis tik dėl projekcijos, kuri yra projektoriaus charakteristika, bet ne rastras. Panašiai fotoaparato gautas rastras rodomas pikselių lauke, kuris taip pat neturi fizinių matmenų.

Informacija pateikiama diskrečiąja forma - ši nuostata leidžia manyti, kad fiziškai įmanoma savavališku tikslumu nustatyti projektuojamų juostų ribas, tačiau apdorojant jas skaitmeniniu formatu, jos vienareikšmiškai paima vieną iš dviejų reikšmių su tam tikru diskretiškumu, vėlgi nustatoma pagal fotoaparato skiriamąją gebą.

Taigi, pagrindinis matematinio modelio uždavinys – virtualią duomenų matricą paversti informacija apie fizinį objektą. Optinė diagrama, paaiškinanti elektronų projekcijos muaro metodą, parodyta 3 paveiksle.

Optinis modelis

Darbinė rastrinė matrica projektuojama ant objekto paviršiaus. Kamera, pastatyta atstumu r, savo optine ašimi sulygiuota su projektoriaus ašimi taške O, kuris priklauso tiriamojo objekto paviršiui. Šiuo atveju fotoaparatas yra pakreiptas laikiklio atžvilgiu. Objekto juostelių raštas skaitmeninis fotoaparatas paverčiamas darbinio rastro pikselių matrica. Kompiuteryje, remiantis informacija apie darbinio rastro juostų storį ir pasirinktą atstumą d nuo taško O iki įsivaizduojamo rastro plokštumos, sugeneruojamas pats įsivaizduojamas rastras. Toliau projektinio rastro šviesių juostų centrai ir įsivaizduojamo rastro tamsių juostų centrai sujungiami sutapimui. Taškai, kuriuose įvyksta toks sutapimas, yra pasaulio juostų centrų taškai.

Panagrinėkime, kaip susidaro įsivaizduojamo rastro tamsiųjų centro taškų koordinatės priklausomai nuo parametrų r, b, d ir darbinio rastro juostelių žingsnio s.

Apibrėžkime kampą b kaip kampą tarp projektoriaus ir fotoaparato optinių ašių. Tada c = 90° - b.

Centro koordinatės:

Skaičiuojant koordinates, naudojama projektoriaus sukurto vaizdo mastelio funkcijos reikšmė. Daroma prielaida, kad projektoriaus ir fotoaparato skiriamoji geba yra vienoda. Q funkcija yra tiesinė, o projektuojamas vaizdas keičia savo fizinius matmenis, priklausomai nuo atstumo iki projekcijos plokštumos.

Apdorojus objekto rastrą gauname šviesių juostų centrų reikšmes ir, norėdami išgauti informaciją apie paviršiaus topologiją, palyginame įsivaizduojamo rastro ir objekto juostų centrų koordinates. Šiuose taškuose šviesos intensyvumas lygus nuliui – tai muare pakraščių centrai. Aukščio vertės apskaičiuojamos pagal formulę:

Taigi gautas pilnas matematinis modelis paviršių topologijos nustatymui naudojant elektroninės projekcijos muaro metodą.

2. Techninės ir programinės įrangos kūrimo priemonių parinkimas

Dabar yra daug modeliavimo programų kūrimo įrankių, pasirinkta tokia programinė įranga:

Naujos technologijos leidžia vienoje programoje naudoti modulius, parašytus skirtingomis programavimo kalbomis. Šią technologiją palaiko Microsoft Visual Studio .NET 2005, kuri apima Visual Basic 2005. VB 2005 yra aukšto lygio programavimo kalba, atitinkanti visus programų saugumo reikalavimus, modernus, lengvai keičiamas kodas, objektinis programavimas ir darbas su 3D programomis suteikia naujų galimybių kurti labai technines programas.

DirectX 9.0c 3D modeliavimo įrankis naudoja šiuolaikinius patobulinimus ir užtikrina ryšį tarp programavimo įrankio ir vaizdo plokštės tvarkyklės. „Direct3D“ komponentas suteikia daug galimybių kurti 3D erdvę.

Microsoft .Net Framework paketas reikalingas, kad programos, parašytos VB 2005 ar naujesne versija, tinkamai veiktų. Apima daugybę komponentų, tokių kaip kompiliatoriai, testavimo programos ir programų apsauga.

Greitam ir patikimam pasirinktos programinės įrangos veikimui reikalingas modernus kompiuteris. Aparatinės įrangos reikalavimai:

Sistemos blokas, turintis šias charakteristikas:

Procesorius Intel Pentium IV 2.0GHz

RAM 256 MB

Laisvos vietos standžiajame diske 100 MB

NVidia GeforceFX5200 128MB vaizdo plokštė su DirectX9.0 palaikymu

Monitorius su išplėtimo palaikymu ne mažesniu kaip 800x600x24

3. Programinės įrangos muaro efektui modeliuoti kūrimas

Projektas buvo sukurtas Visual Basic 7.0. Lankstumo programinė įranga susideda iš trijų modulių:

modelis - grafinė sąsaja ir valdymo modulis, skaičiavimas;

atvaizdavimas – modulis, dirbantis su 3D pasauliu;

bmpbrowser – modulis rastriniams duomenims rodyti.

Pagrindinė programa yra modelio modulyje. Tai leidžia keisti kitus modulius nepažeidžiant pagrindinio, taip pat supaprastina naujų funkcijų pridėjimą, senų keitimą ir programos nustatymus. Modelio modulyje galite lengvai pridėti naujų funkcijų, meniu elementų ir funkcinių elementų, atitinkančių duotą elementą. Taip pat galimybė kurti kitus modulius.

3.1 Pagrindinis programos algoritmas, moduliuojantis muaro efektą

Seka:

Sukuriame darbinį rastrą su nurodytu sukimosi kampu aplink rastro centrą ir tarpus tarp eilučių. Šis taškas atliekamas iškviečiant funkcijas CreatLine(ByVal TResol As Byte, ByRef Mas2D(,) As Byte, ByVal Stp As Integer, ByVal Pix4 As Integer, ByVal Alpha As Single), kur:

TResol - skiriamosios gebos pasirinkimas, atitinka fWidth() ir fHeight() masyvo elementus, dabartinė skiriamoji geba saugoma langelyje nulis;

Mas2D(,) - dvimatis išvesties masyvas, objekto rastras;

Stp - rastro žingsnis;

Pix4 - juodų juostų žingsnio ilgis, dabartiniame projekte Pix4 = Stp/2;

Alfa – sukimosi kampas nurodomas laipsniais.

Tada duomenys iš masyvo išsaugomi bmp faile naudojant SaveToFile(ByVal TResol As Byte, ByVal Mas2D(,) As Byte, ByVal FName As String) procedūrą, kur:

Tresol - raiškos pasirinkimas;

Fname yra kintamasis, kuriame yra failo, kuriame norite išsaugoti, pavadinimą.

Taikome ant objekto iš projektoriaus padėties. Prieš tai, naudojant Camera() procedūrą, gauname rastrą, atsižvelgdami į iškraipymus. Procedūra turi šiuos parametrus Camera (ByVal TResol As Byte, ByVal Mas2D(,) As Byte, ByRef MasCam(,) As Byte, ByVal h As Integer), kur:

Mas2D(,) – dvimatis masyvas, yra įvesties parametras, objekto rastras;

MasCam(,) - dvimatis masyvas, yra išvesties parametras, rastras, atsižvelgiant į iškraipymus;

h yra atstumas nuo projektoriaus iki paviršiaus.

Be to, duomenys iš MasCam(,) išsaugomi bmp faile naudojant SaveToFile() procedūrą. Po to NewRast kintamąjį nustatome į True, tai reiškia, kad atvaizdavimo modulis turi priimti naują darbinį rastrį ir pritaikyti jį objektui (paviršiui). Paviršius sukuriamas procedūra CreateVertexBuffer(ByVal sender As Object), kur siuntėjas yra VertexBuffer objektas (primityvių viršūnių rinkinys).

Gautas linijas "pašaliname" fotoaparatu. Norėdami tai padaryti, valdymą perduodame atvaizdavimo moduliui naudodami kintamąjį createcameraview = True. Atvaizdavimo modulis nustato vaizdą iš kameros padėties ir, naudodamas atitinkamą komandą Direct3D.SurfaceLoader.Save(), išsaugo sluoksnio turinį (matomą dalį) į failą su plėtiniu bmp.

Sukuriame įsivaizduojamą rastrą su nurodytu kampu ir žingsniu ir „užfiksuojame“ jį fotoaparate plokštumoje, statmenoje projektoriaus optinei ašiai. Šis taškas panašus į pirmąjį etapą, tik įvesties ir išvesties duomenys nurodo įsivaizduojamą rastrą. Sukūrus failą su įsivaizduojamu rastru, reikia perkelti į atvaizdavimo modulį poreikį jį imituoti, tai daroma naudojant kintamuosius createcameraviewM=True ir operacijas, panašias į 3 punkte. Rezultatas yra bmp failas su atskaitos rastru.

Muaro rašto gavimas (perdanga). Norėdami tai padaryti, turite įkelti naudodami procedūrą LoadFromFile(ByVal TResol As Byte, ByVal FName As String, ByRef MasOut(,) As Byte), kur:

FName – yra failo, iš kurio reikia įkelti duomenis, pavadinimas;

MasOut() – dvimatis išvesties masyvas, duomenys.

3 ir 4 žingsniais gautas nuotraukas įkėlėme į atitinkamus masyvus. Tada reikia perduoti duomenis į procedūrą Myar(ByVal TResol As Integer, ByVal MasIn1(,) As Byte, ByVal MasIn2(,) As Byte, ByRef MasOut(,) As Byte), kur:

MasIn1(,), MasIn2(,) - dvimačiai įvesties masyvai, atitinkantys įkeltas nuotraukas;

MasOut(,) – dvimatis išvesties masyvas, kuriame yra kombinuotų linijų raštas – muarė.

Ši procedūra nuskaito abi nuotraukas po pikselį ir sukuria išvesties masyvą. Gavę muare, išsaugome ją naudodami aukščiau aprašytą SaveToFile() procedūrą.

Vaizdo apdorojimas (ieškoti linijų centrų). Būtina apdoroti 3 ir 4 žingsniuose gautas nuotraukas. Kaip ir 5 veiksme, pirmiausia turite įkelti duomenis iš failų naudodami LoadFromFile() funkciją. Tada naudokite CenterLine paieškos procedūrą (ByVal TResol As Byte, ByVal MasIn(,) As Byte, ByRef MasOut(,) As Byte, ByVal Alpha As Integer), kur:

MasIn(,), MasOut(,) – atitinkamai dvimačiai įvesties/išvesties duomenų masyvai;

Alfa(,) – rastro pasvirimo kampas, nustatytas siekiant nustatyti juostelių centrų paieškos metodą.

Apskaičiuojame tiriamo paviršiaus aukščius.

3.2 Programos sąsaja

Apsvarstykite modelio modulio sąsają. Kai paleisime programą, pamatysime du langus, pavaizduotus 4 pav. Dešinėje yra valdymo blokas, kairėje – langas, kuriame rodomas 3D pasaulis. Puslapyje „1.Bendra“ galite keisti 3D_modeling lango ir rastrų plėtinius – kuo daugiau, tuo tikslesnis vaizdas.

Skirtukas „1.Bendra“

Taip pat yra visų programos elementų perskaičiavimo funkcija. Norint pakeisti stebėjimo padėtį, reikalingi reguliatoriai. Pereikime prie kito skirtuko.

Skirtuke „2.Projektorius ir rastras“ galite pasirinkti tiriamą paviršių (vieną iš septynių parinkčių: rutulys, plokštuma, kūgis, cilindras, vartotojo failas, sinusoidė).

Skirtukas „2. Projektorius ir rastras“

Toliau reikia įvesti darbinio rastro parametrus, pvz., juostelių žingsnį, sukimosi kampą aplink centrą ir atstumą nuo projektoriaus iki plokštumos. Paspaudus mygtuką „Sukurti“, programa susintetina darbinį rastrą su nurodytais parametrais, ištaiso jį atsižvelgdama į iškraipymus dėl besiskiriančių projektoriaus spindulių ir uždeda rastrą ant objekto. Gauname tokį vaizdą (5 pav.). Toliau reikia „nufotografuoti“ paviršių projektuojamomis linijomis.

Skirtukas „3.Kamera“

Skirtuke „3.Camera“ prieš fotografuodami turite nustatyti kamerą į norimą vietą; tai daroma trimis valdikliais, atitinkančiais koordinates X,Y,Z erdvėje. Paspaudus mygtuką „Fotografuoti“, programa sukuria vaizdą iš nurodytos padėties. 6 paveiksle gauname vaizdą iš priekio.

Kitas etapas yra įsivaizduojamo rastro kūrimas, skirtukas „4.Imaginary raster“. Kaip ir darbiniam rastrui, mes nustatome įsivaizduojamo rastro parametrus, pvz., rastro žingsnį ir sukimosi kampą aplink centrą. Paspaudus mygtuką „Sukurti“, programa susintetina rastrą su nurodytais parametrais. Pavyzdys parodytas 7 paveikslo dešinėje.

Skirtukas „4. Įsivaizduojamas rastras“

Skirtukas „5.PC“

Norėdami apskaičiuoti aukščius, turite paspausti likusius tris mygtukus: „vaizdo juostelių centras“, „įsivaizduojamų rastro juostų centras“, „Muaro juostelių centras“.

Skirtuke „Paviršiaus kūrimas“ sukuriamas failas su pasirinktiniais paviršiaus parametrais (9 pav.).

Paviršiaus kūrimo skirtukas

Norėdami peržiūrėti gautas nuotraukas, turite paleisti BMP naršyklę atitinkamu mygtuku.

Paleidus BMP naršyklę, kairėje parenkamas reikalingas resursas, pavyzdžiui, galima peržiūrėti originalų darbinį rastrą (10 pav.) arba įsivaizduojamą (11 pav.).

Darbinis rastras

Siekiant palengvinti vaizdo apdorojimo operacijas, muare vaizdas perjungiamas į juodos skalės režimą. Muaro efektas parodytas 12 paveiksle. Jis buvo gautas uždėjus įsivaizduojamą rastrą 10 paveiksle ant tiriamos plokštumos nuotraukos 6 paveiksle.

programos muaro efekto vaizdas

Įsivaizduojamas rastras

Norėdami apskaičiuoti juostelių centrus, randame vaizdo ir įsivaizduojamo rastro šviesių juostų centrus. Gauname 13.a ir 13.b paveikslus. Sujungus juos, gauname 13.c paveikslo linijų centrų muare.

Muaro efektas

Juostų centrų nuotraukos apverstos

Išvada

Šiame kursiniame projekte buvo sukurtas algoritmas, kuris buvo įgyvendintas muaro efektą imituojančioje programoje. Projektas buvo sukurtas naudojant Pentium IV sistemą, 512 MB RAM ir vaizdo plokštę su DX9 palaikymu.

Sukurta patogi programinės įrangos sąsaja.

Programoje buvo įgyvendintos šios funkcijos: keisti objekto rastro parametrus, projektuoti rastrą ant duoto paviršiaus, susintetinti įsivaizduojamą rastrą; pakeisti kameros ir projektoriaus padėtį erdvėje; atlikti pirminį tinklelio linijų apdorojimą, imituoti muaro efektą ir apskaičiuoti viršūnes.

Programa pasirodė labai funkcionali ir lanksti, minimalios intervencijos gali radikaliai pakeisti produktą. Kai kuriuos programų algoritmus galima patobulinti, pavyzdžiui, ieškant juostelių centrų, tai gali padidinti matavimo tikslumą.

Programa reikalauja nuodugniai peržiūrėti viršūnių skaičiavimo paprogramę.

Naudotų šaltinių sąrašas

Kuzyakovas O.N., Kucheriukas V.I. Paviršių topologijų, poslinkių ir deformacijų matavimo metodai ir įrankiai. - Tiumenė: TyumGNGU, 2002.-172 p.

3D pagrindai - http://softs.h10.ru

Microsoft Visual Basic 2005 – http://www.microsoft.com

Microsoft DirectX 9 SDK – http://www.microsoft.com

Microsoft Visual Studio .NET SDK – http://www.microsoft.com

A priedas

Modulio „Options.vb“ sąrašas

Importuoja System.Windows.Forms

Viešosios klasės parinktys

Paveldi System.Windows.Forms.Form

Viešas perdavimas kaip loginis = Tiesa

„Nustato, ar pasikeitė paviršiaus išvaizda

Vieša statW As String = "Rodyti"

3D modeliavimo lango būsenos kintamasis

Public savef As Boolean = klaidinga

Galimybė įrašyti 3D modeliavimo langą į failą

Viešas sukurti kameros vaizdąA Kaip baitas = 0

Automatinis kadrų kūrimo kintamasis

Viešas sukurti kameros vaizdą Kaip Būlis = False

Kintamasis, skirtas sukurti darbinio paviršiaus rėmelį ir įrašyti į failą

Viešas sukurti kameros vaizdasM Kaip Būlis = False

„Kintamasis, skirtas sukurti įsivaizduojamą paviršiaus rėmelį ir išsaugoti faile

Viešas atnaujinimo langas As Boolean = klaidinga

Būsenos kintamojo atnaujinimo 3D modeliavimo langas

Viešas MRast kaip Būlis = False

Įsivaizduojamas rastrinio apdorojimo būsenos kintamasis

Public NewRast As Boolean = klaidinga

Darbo rastrinio apdorojimo būsenos kintamasis

Public NewResolution As Boolean = klaidinga

Būsenos kintamasis naujas plėtinys

Viešasis veidas kaip sveikasis skaičius „Paviršiaus numeris

Public UserSur(1280 - 1, 960 - 1) Kaip Int32 "vartotojo paviršiaus masyvas

Public SurSize Kaip naujas „RecSize“ tinkintas paviršiaus dydis

Public Mas(1280, 960) Kaip baitas "darbinis rastras

Viešasis MasM(1280 - 1, 960 - 1) Kaip baitas "įsivaizduojamas rastras

Viešas Mas2(1280 - 1, 960 - 1) Kaip baitas "vaizdas iš projektoriaus

Viešoji Mas3(1280 - 1, 960 - 1) Kaip baitų "juostos centrai

Viešasis Mas4(1280 - 1, 960 - 1) kaip baitas "įsivaizduojamo paviršiaus juostelių centrai

Viešasis MasC(1280 - 1, 960 - 1) Kaip baitas "Kameros vaizdas

Viešas MasCM(1280 - 1, 960 - 1) Kaip baitas "Vaizdas iš kameros m-rasterio

Viešas MasMyar (1280 - 1, 960 - 1) Kaip baitas "Moire vaizdas

Viešasis MasMyarC(1280 - 1, 960 - 1) Kaip baitas "Muaro vaizdas. linijų centras

Viešasis fWidth() kaip sveikasis skaičius = (400, 400, 640, 800, 1024, 1280) "Palaikomos X raiškos

Viešas fHeight() Kaip sveikasis skaičius = (300, 300, 480, 600, 768, 960) "Palaikomos Y raiškos

Viešasis fSize() kaip vienas = (1, 1,6, 2, 2,56, 3,2)

Mastelio koeficientas, priklausantis nuo skiriamosios gebos

Viešas SomeChange As Boolean = klaidingas "Kažkas pasikeitė būsenos kintamasis"

Const FType As Int16 = &H4D42 "Pastovi BM – deklaruoja failo tipą BMP

Const XpM As Int32 = 10 000

Const YpM As Int32 = 10 000

Const bitperpix As Byte = 24

Const Rez As Int16 = 0

Const Off Kaip Int32 = &H36

Const HSize Kaip Int32 = &H28

Const plokštumos As Int16 = 1

Const Compr As Int32 = 0

Const ISize As Int32 = 0

Const CUsed As Int32 = 0

Const CImp As Int32 = 0

Const R1 As Byte = &HFF

Const G1 As Byte = &HFF

Const B1 As Byte = &HFF

Const R2 As Byte = 0

Const G2 As Byte = 0

Const B2 As Byte = 0

Const RR As Byte = &H0

„Norint dirbti su BMP formato failais, reikalingos visos konstantos

"Procedūra sukurti rastro su kampu Alfa, žingsnis Stp, rezultatas išsaugomas Mas2D(,)

Sub CreatLine (ByVal TResol kaip baitas, ByRef Mas2D(,) kaip baitas, ByVal Stp kaip sveikasis skaičius, ByVal Pix4 kaip sveikasis skaičius, ByVal Alpha kaip vienas)

Dim yc As Integer = maxy\2

Pritemdytas laisvas kintamasis kaip vienas

ProgressBar1.Maximum = maxy "Rodyti eigos juostą

„Sužinok, kur šis taškas buvo prieš sukimąsi ir tada

"aptikta tamsi / šviesi juosta

Kai ay = 0 iki maksimalaus - 1

Ax = 0 Iki maxx - 1

laisvasis kintamasis = yc + (ax - xc) * Math.Sin(-1 * Alfa / 180 * Math.PI) + (ay - yc) * Math.Cos (-1 * Alfa / 180 * Math.PI)

Jei Math.Abs((laisvas kintamasis + yc + Pix4 \ 2) Mod Stp) >= Pix4 Tada Mas2D(ax, ay) = &HFF Kita Mas2D(ax, ay) = &H0

ProgressBar1.Value = ay

ProgressBar1.Value = 0

„Paviršiaus generavimo procedūra

Funkcija Telo (ByVal axisX kaip sveikasis skaičius, ByVal axisY kaip sveikasis skaičius) kaip vienas

Dim fs As Single = fSize(CB_Res.SelectedIndex)

"Mastelio keitimo funkcija nustatoma atsižvelgiant į pasirinktą plėtinį

Dim axisZ As Single

Dim t1 As Single

ašisZ = 0 plokštuma

Jei (Veidelis = 1) Tada cilindras1

Jei (axisX > -50 * fs) Ir (axisX< 50 * fs) Then

axisZ = Math.Sqrt((50 * fs)^2 – ašisX^2)

Jei (Veidelis = 2) Tada cilindras2

Jei (axisX > -100 * fs) Ir (axisX< 100 * fs) Then

axisZ = Math.Sqrt((100 * fs)^2 – ašisX^2)

Jei (Veidas = 3) Tada kūgis

axisZ = (100 * fs – Math.Sqrt(axisY^2 + axisX^2)) * 2

Jei ašisZ< 0 Then

Jei (Veidas = 4) Tada kamuolys

t1 = (100 * fs)^2 – ašisY^2 – ašisX^2

Jei t1 >= 0 Tada

ašisZ = Math.Sqrt(t1)

Jei (Veidas = 5) Tada naujas

t1 = Y^2 + ašisX^2

If(t1< (20 * fs) ^ 2) Then

Jei (t1 > (20 * fs) ^ 2) Ir (t1< (100 * fs) ^ 2) Then

axisZ = -Math.Sqrt(0,25 * t1 - (10 * fs)^2) + 100

Jei (Veidas = 6) Tada

Dim OffX kaip sveikasis skaičius = SurSize.X / 2

Dim OffY kaip sveikasis skaičius = SurSize.Y / 2

Jei (Math.Abs(axisX)<= OffX) And (Math.Abs(axisY) <= OffY) Then

axisZ = UserSur(axisX + OffX, axisY + OffY)

Jei (Veidas = 7) Tada

Pritemdytas stiprintuvas As Byte = NUDSyn.Value

axisZ = amp * Math.Cos(axisX * Math.PI / 50) + amp

Grįžimo ašisZ grąžina aukščio reikšmę

„Iškraipymų skaičiavimo tvarka

Papildoma kamera (ByVal TResol kaip baitas, ByVal Mas2D(,) kaip baitas, ByRef MasCam(,) kaip baitas, ByVal h kaip sveikasis skaičius)

Dim maxx As Integer = fWidth(TResol) "X ir Y skyra

Dim maxy Kaip sveikasis skaičius = fAukštis (TResol)

Dim xc Kaip sveikasis skaičius = maxx\2" centras X ir Y

Dim yc As Integer = maxy\2

Dim ax, ay As Int16 "laisvi kintamieji

Dim x1, y1 kaip sveikasis skaičius

Pritemdytas laisvas kintamasis, az, thaz As Single

„Rastro kūrimo ciklas, skenavimas išilgai X ir Y

„Žmogus išsiaiškina, kur šis taškas turėtų būti, tada kur jis yra

Kai ay = 0 iki maksimalaus - 1

Ax = 0 Iki maxx - 1

az = Telo(ax - xc, ay - yc)

Jei taz = 0, tada thaz = -0,000000000000001

x1 = ((ax - xc) * h) / thaz + xc

y1 = ((ay - yc) * h) / thaz + yc

If(x1< fWidth(0)) And (y1 < fHeight(0)) And (x1 >= 0) Ir (y1 >= 0) Tada

MasCam(ax, ay) = Mas2D(x1, y1)

Kita: MasCam(ax, ay) = 0

ProgressBar1.Value = ay

ProgressBar1.Value = 0

Dvimačio Mas2D masyvo įrašymo į failą FName procedūra

Sub SaveToFile (ByVal TResol kaip baitas, ByVal Mas2D(,) kaip baitas, ByVal FName kaip eilutė)

Pritemdykite FS dydį kaip Int32 = fplotis (TResol) * faukštis (TResol) * (bitperpix / 8) + išjungta

failo dydis

Dim BitCount As Int16 = bitų skaičius bitų vienoje spalvoje

Dim fs As IO.FileStream = Naujas IO.FileStream(FName, IO.FileMode.Create)

failo kūrimas

Dim w Kaip IO.BinaryWriter = Naujas IO.BinaryWriter(fs)

failo atidarymas rašymui

"Įrašo antraštė

w.Write(FType) "Failo tipas

w.Write(FSize) "Dydis

w.Write(Off) "Poslinkis

w.Write(HSize) "Antraštės dydis

w.Write(fWidth(TResol)) "X išplėtimas

w.Write(fHeight(TResol)) ant Y

w.Write(planes) bitų plokštumų skaičius

w.Write(BitCount) "bitų skaičius pikselyje

w.Write(Compr) "pakavimo būdas 0 – nėra

w.Write(ISize) "vaizdo dydis

w.Write(XpM) "taškų skaičius metre

w.Write(YpM) "taškų skaičius metre

w.Write(CUsed) "naudotų spalvų skaičius

w.Write(CImp) "reikiamų spalvų skaičius

Duomenų įrašymas iš masyvo į failą

Tamsus kirvis, ay As Int16

Pritemdykite kaip sveikasis skaičius

ProgressBar1.Maximum = fAukštis (TResol)

Jei ay = fAukštis (TResol) – 1–0 –1 veiksmas

w.Write(Mas2D(ax, ay)) "R

w.Write(Mas2D(ax, ay)) "G

w.Write(Mas2D(ax, ay)) "B

ProgressBar1.Value = ay

ProgressBar1.Value = 0

w.Close() uždaro failą.

Duomenų įkėlimo iš BMP failo į masyvą procedūra.

Sub LoadFromFile (ByVal TResol kaip baitas, ByVal FName kaip eilutė, ByRef MasOut(,) kaip baitas)

Dim fs As IO.FileStream = Naujas IO.FileStream(FName, IO.FileMode.Open)

atidarant failą

Pritemdyti r Kaip IO.BinaryReader = Naujas IO.BinaryReader(fs)

nustatymą skaityti

r.BaseStream.Seek(&HA, IO.SeekOrigin.Begin)

Pritemdykite pradinius duomenis kaip Int32

beginData = r.ReadInt32() nuskaito, kur prasideda duomenys

r.BaseStream.Seek(&H12, IO.SeekOrigin.Begin)

Dim MaxX, MaxY As Int32

MaxX = r.ReadInt32() skaitymo skyra X

MaxY = r.ReadInt32() ant Y

r.BaseStream.Seek(&H1C, IO.SeekOrigin.Begin)

Pritemdytas BperP kaip baitas

BperP = r.ReadByte skaitymo bitų skaičius taške

Dim MasTemp(MaxX, MaxY) As Byte "Laikinojo masyvo kūrimas

ClearMas(0, MasTemp) išvalo masyvą

Dim b1, b2, b3, b4 kaip sveikasis skaičius

r.BaseStream.Seek(beginData, IO.SeekOrigin.Begin) pereiti į duomenų pradžią

„Duomenų skaitymas į masyvą

Dim x, y kaip sveikasis skaičius

Jei y = MaxY - nuo 1 iki 0 -1 veiksmas

Jei x = 0 iki MaxX – 1

Jei BperP >= 16 Tada b2 = r.ReadByte

Jei BperP >= 24 Tada b3 = r.ReadByte

Jei BperP >= 32 Tada b4 = r.ReadByte

MasTemp(x, y) = b1

pirminis duomenų apdorojimas

Dim lx, ly Kaip sveikasis skaičius

lx = (MaxX – fWidth(TResol)) \ 2

ly = (MaxY – fAukštis(TResol)) \ 2

Jei x = 0 iki fWidth(TResol) – 1

Jei y = 0 Iki fAukščio (TResol) – 1

MasOut(x, y) = MasTemp(lx + x, ly + y)

r.Close() uždaro failą

„Linijų centrų nustatymo tvarka

Sub CenterLine (ByVal TResol kaip baitas, ByVal MasIn(,) kaip baitas, ByRef MasOut(,) kaip baitas, ByVal Alpha kaip sveikasis skaičius)

Tamsus kirvis, ay As Int16

Pritemdykite kaip sveikasis skaičius

Neryškiai kaip sveikasis skaičius

Pritemdyta linija kaip Būlio reikšmė

Dim notdel As Boolean

Pritemdytas t Kaip sveikasis skaičius

„Masyvo nulis

Ax = 0 Iki fWidth(TResol) – 1

MasOut(ax, ay) = 0

Jei kampas mažesnis nei 45 laipsniai, nuskaitykite palei Y

Jei Alfa<= 45 Then

Ax = 0 Iki fWidth(TResol) – 1

Jei ay = 0 iki fAukščio (TResol) - 1

If (MasIn(ax, ay) >

ElseIf (MasIn(ax, ay)<= 100) And (Line = True) Then "=0

Jei kampas didesnis nei 45 laipsniai, nuskaitykite palei X

Jei ay = 0 iki fAukščio (TResol) - 1

Ax = 0 Iki fWidth(TResol) – 1

Jei (MasIn(ax, ay) >= 200) Ir (Eilutė = klaidinga) Tada =1

ElseIf (MasIn(ax, ay)<= 100) And (Line = True) Then "=0

MasOut(ax, (ly + ay) \ 2) = &HFF

"Masyvo išvalymo procedūra

Sub ClearMas (ByVal TResol kaip sveikasis skaičius, ByRef Mas(,) kaip baitas)

Tamsus kirvis, tai kaip sveikasis skaičius

Ax = 0 Iki fWidth(0) - 1

Jei ay = 0 iki fAukščio (0) - 1

MasC(ax, ay) = 0

„Įsivaizduojamo rastro kūrimo procedūra

Sub CreateMRast()

LStatus.Text = "Kuriamas m-rasteris"

ClearMas(0, MasM)

CreatLine(0, MasM, NumericUpDownMRS.Value, NumericUpDownMRS.Value – NumericUpDownMRS1.Value, NumericUpDownMRA.Value)

NumericUpDownMRS.Value tinklelio žingsnis

NumericUpDownMRS1. Tamsiųjų juostų reikšmės plotis

NumericUpDownMRA.Value sukimosi kampas;

SaveToFile(0, MasM, ".\Imaginary raster.bmp")

„Moire gavimo procedūra

Sub Myar (ByVal TResol kaip sveikasis skaičius, ByVal MasIn1(,) kaip baitas, ByVal MasIn2(,) kaip baitas, ByRef MasOut(,) kaip baitas)

Tamsus kirvis, tai kaip sveikasis skaičius

Ax = 0 Iki fWidth(0) - 1

Jei ay = 0 iki fAukščio (0) - 1

If (MasIn1(ax, ay) > MasIn2(ax, ay)) Tada

MasOut(ax, ay) = MasIn1(ax, ay)

MasOut(ax, ay) = MasIn2(ax, ay)

„Darbinio paviršiaus linijų procedūrų centrai

ClearMas(0, MasC)

ClearMas(0, Mas3)

CenterLine(0, MasC, Mas3, NumericUpDown.Value)

SaveToFile(0, Mas3, ".\Darbinio paviršiaus linijų centrai.bmp")

"Procedūra Įsivaizduojamo paviršiaus linijų centrai

ClearMas(0, MasCM)

ClearMas(0, Mas4)

CenterLine(0, MasCM, Mas4, Me.NumericUpDownMRA.Value)

SaveToFile(0, Mas4, ".\Įsivaizduojamo paviršiaus linijų centrai.bmp")

„Linijų centrų muaro gavimo procedūra

Sub MyarEffectLine()

ClearMas(0, Mas3)

ClearMas(0, Mas4)

ClearMas(0, MasMyarC)

Myar(0, Mas3, Mas4, MasMyarC)

SaveToFile(0, MasMyarC, ".\Moire effect of line centers.bmp")

„Moire gavimo procedūra

Sub MyarEffect()

ClearMas(0, MasC)

ClearMas(0, MasCM)

ClearMas (0, MasMyar)

LoadFromFile(0, ".\Įsivaizduojamo paviršiaus vaizdas.bmp", MasCM)

LoadFromFile(0, ".\Darbinio paviršiaus vaizdas.bmp", MasC)

Myar (0, MasC, MasCM, MasMyar)

SaveToFile(0, MasMyar, ".\Moire effect.bmp")

„Automatinio muare kūrimo ir linijų centrų paieškos procedūra

Public Sub autocreatall()

MyarEffectLine()

Private Sub Options_Load (ByVal siuntėjas kaip System.Object, ByVal e As System.EventArgs) tvarko MyBase.Load

CB_Res.SelectedIndex = 0

CB_Pov.SelectedIndex = 0

Aš.Vieta = nauja sistema.Brėžinys.Taškas(10, 0)

Me.TopMost = Tiesa

Privatus antrinis mygtukasBMP („ByVal“ siuntėjas kaip sistema. objektas, „ByVal e“ kaip sistema. „EventArgs“) rankenos mygtukas 12. Spustelėkite

statW = "Sukurti BMP naršyklę"

Private Sub TabControl1_SelectedIndexChanged (Pagal siuntėjas kaip System.Object, ByVal e As System.EventArgs) Rankenos TabControl1.SelectedIndexChanged

TabControl1.Refresh()

Jei CheckBoxAuto.Checked = True Tada

Jei SomeChange = True tada

Button2_Click (siuntėjas, e)

sukurti kameros vaizdąA = 3

SomeChange = klaidinga

refreshwindow = Tiesa

Privatus antrinis mygtukas10_Spustelėkite (ByVal siuntėjas kaip sistema.objektas, ByVal e kaip sistema.EventArgs) Rankenėlės mygtukas 10.Spustelėkite

LoadFromFile(0, ".\Darbo paviršiaus linijų centrai.bmp", Mas3)

LoadFromFile(0, ".\Įsivaizduojamo paviršiaus linijų centrai.bmp", Mas4)

Dim h, cosf1, cosf2 kaip dvigubas

Dim fs As IO.FileStream = Naujas IO.FileStream("testas", IO.FileMode.Create)

Dim w As IO.TextWriter = naujas IO.StreamWriter(fs)

Tamsus kirvis, tai kaip sveikasis skaičius

Ax = 0 Iki fWidth(0) - 1

Jei ay = 0 iki fAukščio (0) - 1

Jei (Mas3(ax, ay) = &HFF) Ir (Mas4(ax, ay) = &HFF) Tada

cosf1 = NumericUpDownPZ.Value / Math.Sqrt(NumericUpDownPZ.Value ^ 2 + ax ^ 2 + ay ^ 2)

cosf2 = NumericUpDownCH.Value * Math.Cos(NumericUpDownCA.Value * Math.PI / 180) / Math.Sqrt(NumericUpDownCH.Value ^ 2 + ax ^ 2 + ay ^ 2 + 2 * ax * Math.Calueth *NumericUp. (NumericUpDownCA.Value * Math.PI / 180))

h = NumericUpDownWRS.Value() / (Math.Tan(Math.Acos(cosf1)) + Math.Tan(Math.Acos(cosf2)))

w.WriteLine(" X:" + CStr(ax) + " Y:" + CStr(ay) + " H:" + CStr(h))

Privatus antrinis mygtukas1_Spustelėkite (ByVal siuntėjas kaip sistema.objektas, ByVal e kaip sistema.EventArgs) Rankenėlės mygtukas1.Spustelėkite

Button2_Click (siuntėjas, e)

sukurti kameros vaizdąA = 3

LStatus.Text = ""

Privatus antrinis mygtukas2_Spustelėkite (ByVal siuntėjas kaip sistema.objektas, ByVal e kaip sistema.EventArgs) Rankenėlės 2 mygtukas.Spustelėkite

LStatus.Text = "Kuriamas rastras"

ClearMas(0, Mas)

CreatLine(0, Mas, NumericUpDownWRS.Value, NumericUpDownWRS.Value – NumericUpDownWRS1.Value, NumericUpDownWRA.Value)

LStatus.Text = "Išsaugomas rastras"

SaveToFile(0, Mas, ".\Working raster.bmp")

LStatus.Text = "Išsaugomas raster2"

ClearMas(0, Mas2)

Kamera (0, Mas, Mas2, NumericUpDownPZ.Value * fWidth(0) / 16)

SaveToFile(0, Mas2, ".\Working raster distortion.bmp")

refreshwindow = Tiesa

Privatus antrinis mygtukas3_Spustelėkite (ByVal siuntėjas kaip sistema.Objektas, ByVal e kaip sistema.EventArgs) Rankenėlių mygtukas3.Spustelėkite

Createcameraview = Tiesa

refreshwindow = Tiesa

Privatus antrinis mygtukas4_Spustelėkite (ByVal siuntėjas kaip sistema.objektas, ByVal e kaip sistema.EventArgs) Rankenėlės mygtukas4.Spustelėkite

Createcameraview = Tiesa

CreatecameraviewM = Tiesa

LStatus.Text = "Rastrinė perdanga"

refreshwindow = Tiesa

LStatus.Text = ""

Privatus antrinis mygtukas5_Spustelėkite (ByVal siuntėjas kaip sistema.objektas, ByVal e kaip sistema.EventArgs) Rankenėlių mygtukas5.Spustelėkite

Privatus antrinis mygtukas6_Spustelėkite (ByVal siuntėjas kaip sistema.Objektas, ByVal e kaip sistema.EventArgs) Rankenėlės mygtukas6.Spustelėkite

Privatus antrinis mygtukas7_Spustelėkite (ByVal siuntėjas kaip sistema.objektas, ByVal e kaip sistema.EventArgs) Rankenėlės mygtukas7.Spustelėkite

MyarEffectLine()

Privatus antrinis mygtukas8_Spustelėkite (ByVal siuntėjas kaip sistema.objektas, ByVal e kaip sistema.EventArgs) Rankenėlės mygtukas8.Spustelėkite

Apsaugotos nepaisymo Sub Finalize() "Užbaigimo procedūra

MyBase.Finalize()

Privatus Sub NumericUpDownWRS_ValueChanged (ByVal siuntėjas kaip System.Object, ByVal e As System.EventArgs) tvarko NumericUpDownWRS.ValueChanged

SomeChange = Tiesa

NumericUpDownWRS1.Value = NumericUpDownWRS.Value\2

Private Sub NumericUpDownPZ_ValueChanged (ByVal siuntėjas kaip System.Object, ByVal e As System.EventArgs) tvarko NumericUpDownPZ.ValueChanged

SomeChange = Tiesa

TrackBarPZ.Value = NumericUpDownPZ.Value

refreshwindow = Tiesa

Private Sub TrackBarPZ_Scroll (ByVal siuntėjas kaip System.Object, ByVal e As System.EventArgs) Valdo TrackBarPZ.Scroll

SomeChange = Tiesa

NumericUpDownPZ.Value = TrackBarPZ.Value

refreshwindow = Tiesa

Privatus antrinis „TrackBarCX_Scroll“ (ByVal siuntėjas kaip sistema. objektas, „ByVal e“ kaip sistema. „EventArgs“) tvarko „TrackBarCX.Scroll“

SomeChange = Tiesa

NumericUpDownCX.Value = TrackBarCX.Value

Jei žymimasis langelis1.Pažymėta tada

Createcameraview = Tiesa

refreshwindow = Tiesa

Privatus Sub NumericUpDownCX_ValueChanged (ByVal siuntėjas kaip System.Object, ByVal e As System.EventArgs) tvarko NumericUpDownCX.ValueChanged

SomeChange = Tiesa

TrackBarCX.Value = NumericUpDownCX.Value

Jei žymimasis langelis1.Pažymėta tada

Createcameraview = Tiesa

refreshwindow = Tiesa

Privatus antrinis „TrackBarCY_Scroll“ (ByVal siuntėjas kaip sistema. objektas, „ByVal e“ kaip sistema. „EventArgs“) tvarko „TrackBarCY.Scroll“

SomeChange = Tiesa

NumericUpDownCY.Value = TrackBarCY.Value

Jei žymimasis langelis1.Pažymėta tada

Createcameraview = Tiesa

refreshwindow = Tiesa

Privatus Sub NumericUpDownCY_ValueChanged(ByVal siuntėjas kaip System.Object, ByVal e As System.EventArgs) tvarko NumericUpDownCY.ValueChanged

SomeChange = Tiesa

TrackBarCY.Value = NumericUpDownCY.Value

NumericUpDownCH.Value = Math.Sqrt(NumericUpDownCX.Value ^2 + NumericUpDownCY.Value ^2 + NumericUpDownCZ.Value ^2)

NumericUpDownCA.Value = Math.Acos(NumericUpDownCZ.Value / Math.Sqrt(NumericUpDownCX.Value ^2 + NumericUpDownCY.Value ^2 + NumericUpDownCZ.Value ^2)) * 180 / Math.PI

Jei žymimasis langelis1.Pažymėta tada

Createcameraview = Tiesa

refreshwindow = Tiesa

Privatus antrinis „TrackBarCZ_Scroll“ (ByVal siuntėjas kaip sistema.objektas, „ByVal e“ kaip sistema.EventArgs) tvarko „TrackBarCZ.Scroll“

SomeChange = Tiesa

NumericUpDownCZ.Value = TrackBarCZ.Value

Jei žymimasis langelis1.Pažymėta tada

Createcameraview = Tiesa

refreshwindow = Tiesa

Privatus Sub NumericUpDownCZ_ValueChanged (ByVal siuntėjas kaip System.Object, ByVal e As System.EventArgs) tvarko NumericUpDownCZ.ValueChanged

SomeChange = Tiesa

TrackBarCZ.Value = NumericUpDownCZ.Value

NumericUpDownCH.Value = Math.Sqrt(NumericUpDownCX.Value ^2 + NumericUpDownCY.Value ^2 + NumericUpDownCZ.Value ^2)

NumericUpDownCA.Value = Math.Acos(NumericUpDownCZ.Value / Math.Sqrt(NumericUpDownCX.Value ^2 + NumericUpDownCY.Value ^2 + NumericUpDownCZ.Value ^2)) * 180 / Math.PI

Jei žymimasis langelis1.Pažymėta tada

Createcameraview = Tiesa

refreshwindow = Tiesa

Privatus antrinis „TrackBar1_Scroll“ (ByVal siuntėjas kaip sistema.objektas, „ByVal e“ kaip sistema.EventArgs) Valdo „TrackBar1.Scroll“, „TrackBar3.Scroll“, „TrackBar2.Scroll“

refreshwindow = Tiesa

Privatus Sub NumericUpDownMRS1_ValueChanged(ByVal siuntėjas As System.Object, ByVal e As System.EventArgs) Apdoroja NumericUpDownMRS1.ValueChanged, NumericUpDown.ValueChanged, NumericUpDownMRA.ValueUVpDownChanged, NumericUpDownMRA.ValueChanged, NumericUpDownmeric.

Panašūs dokumentai

    Nurodytų funkcijų skaičiavimo programos kūrimas ir įgyvendinimas VBA programavimo kalba. Matematinis modelis, uždavinio parametrai ir charakteristikos, sukurto modulio efektyvumo vertinimo kriterijai. Algoritmų kūrimas ir programinės įrangos modulių testavimas.

    kursinis darbas, pridėtas 2010-09-08

    Žaidimo programos, imituojančios kamuoliuko elgesį uždaroje beorėje erdvėje, sukūrimas. Sunkio ir trinties su sienomis vertės keitimas. Programos sąsaja, pagrindinė jos forma. Programos ir jos pagrindinio kodo blokinė schema. Trečiojo dimensijos pridėjimas.

    testas, pridėtas 2012-08-27

    Komercinio banko struktūra ir pagrindinės operacijos. Naudojant Visual Basic for Application programavimo kalbą, matematinė problemos formuluotė. Paskolų ir indėlių skaičiavimo programos modulio kūrimas. Programos vykdymo algoritmo schema.

    kursinis darbas, pridėtas 2012-09-04

    Skaitinio integravimo uždavinio sprendimo trapecijos metodu algoritmo sukūrimas. Sukurto programos algoritmo žodinis aprašymas ir blokinė schema. Programos sąsajos, pagrindinio lango ir pagrindinių formų aprašymas. Programos funkcionalumo patikrinimas.

    kursinis darbas, pridėtas 2012-03-16

    Žaidimą „Kauliukai“ imituojančios programos preliminariųjų ir techninių projektų kūrimas. Problemos išdėstymas, algoritmo aprašymas; programos rašymas, įvesties ir išvesties duomenų tvarkymas; programinės įrangos pasirinkimas; specifikacija, tekstas, vykdymo sąlygos.

    kursinis darbas, pridėtas 2012-11-02

    Informacijos apdorojimo metodai sprendžiant taikomąsias problemas. Matematinis problemos modelis. Programos algoritmo blokinė schema. Komponentai, kurie naudojami darbui programoje: sąsajos elementai; procedūros; operatoriai. Programos tekstas su paaiškinimais.

    kursinis darbas, pridėtas 2011-07-01

    „Patiekalo kodo“ sąvokos esmė. Mokymosi ir naudojimosi programa algoritmai. Programos logika. Bendra programos sąsaja. Mokymų seka Lota+ programoje. Programos sąsaja parametrų pasirinkimo ir bendro rezultato gavimo metu.

    kursinis darbas, pridėtas 2009-12-01

    Programos, imituojančios krintančių kamuoliukų procesą Galton lentoje, sukūrimas – prietaisas, aiškiai iliustruojantis kai kuriuos tikimybių teorijos dėsnius. Sprendimo metodo struktūra. Programos meniu blokinė schema. Procedūros, sąsaja, vartotojo vadovas.

    kursinis darbas, pridėtas 2013-01-15

    Apibrėžtinio integralo sprendimo integrando trapecijos metodu algoritmo sukūrimas ir priverstinių svyravimų be slopinimo problemos modeliavimas. Programos sąsajos aprašymas Delphi ir MathCad; identifikatoriai, moduliai ir programos.

    kursinis darbas, pridėtas 2013-05-28

    Problemos analizė, matematinė formuluotė. Pagrindinės programos veikimo algoritmo aprašymas. Atskirų programos dalių detalizavimas. Programos „15“ grafinė sąsaja. Naudojamų tipų aprašymai, globalūs kintamieji, procedūros, funkcijos. Derinimo procesas.

Muaro spalva arba raštas sukuria vaizdinę seką su privaloma panašių raštų perdanga vienas kito atžvilgiu. Pavyzdžiui, kai du identiški (dažniausiai skaidrūs) raštai ant plokščio arba išlenkto paviršiaus yra išdėstyti vienas kito atžvilgiu.

Tai gali būti tiesios linijos, kurios yra tinklelių arba taškų, kurie persidengia vienas su kitu su sukimu ar poslinkiu, pavidalu.

Kaip tai pasakytum prancūziškai?

Terminas kilęs iš prancūziško žodžio moiré – moire, dar vadinamo moira. Tai reiškia raibuliavimą arba bangą, dryžuotą raštą, kuris atsiranda, kai į objektą žiūrima iš skirtingų šviesos kampų. Moiré taip pat yra audinio rūšis.

Tradiciškai muaro spalva arba, tiksliau, raštas, buvo siejamas su audinio rūšimi, dažniausiai aukštos kokybės šilku. Dabar ant medvilnės ir sintetinio pluošto audinių matosi raibuliukai ar bangos.

Nuotraukoje pavaizduotas muaro efektas; nesvarbu, kokios spalvos jis gali būti.

Struktūros formavimas arba puikus dizainas

Muaro raštai dažnai ne tik atsiranda ant audinių, bet ir yra nepageidaujamas skaitmeninio vaizdo ir kompiuterinės grafikos vaizdų artefaktas. Pavyzdžiui, panašus vizualinis efektas atsiranda nuskaitant neryškų vaizdą per skaidrų languotą raštą.

Aukščiau esančioje nuotraukoje parodytas muarė modelis. Linijos gali pavaizduoti šilko pluoštus kaip raibulius ar bangas, jas galima nupiešti ant popieriaus arba pasirodyti kompiuterio ekrane. Į klausimą, kodėl taip nutinka:

  • Dėl netiesinės daugiakrypčių linijų sistemų sąveikos sukuriama reali ir matoma muaro spalva arba maždaug lygiagrečių tamsių ir šviesių juostelių, išdėstytų viena ant kitos poslinkio būdu, raštas.

Žemiau esančioje nuotraukoje yra ryškus bangų vizualizacijos pavyzdys.

  • Jei linijos yra išlenktos arba ne visai lygiagrečios, sukuriamos sudėtingesnės linijinės moiros, kaip papūgos sparno nuotraukoje.
  • Raštai, atskleidžiantys viename iš sluoksnių įterptas sudėtingas formas ar simbolių sekas (periodiškai pasikartojančių suspaustų figūrų pavidalu), dažniausiai suteikia labai įdomių vaizdų, specialiai sukurtų naudojant moirų grupes.
  • Viena iš svarbiausių visų tipų muare savybių yra jų gebėjimas padidinti arba ištempti mažas linijas, juosteles, taškus išilgai vienos ar abiejų tempimo ašių, sukuriant nuostabius 2D efektus.

Bendrą 2D pagrindinio modelio padidinimo ir iškraipymo pavyzdį galima pamatyti žiūrint grandinės grandį per kitą identiškos konstrukcijos grandinės grandį. Subtilus blizgančių bangelių dizainas aiškiai matomas net iš toli.

Kokia muaro spalva? Garažo durų nuotraukoje pavaizduotas modelis - dizaino linijų, besislenkančių viena kitos atžvilgiu, efektas. Vartai yra dviejų plokštumų konstrukcija su metalinėmis juostomis, sujungtomis ofsetu.

Trūkumas arba ypatybė: muaro spalva vaizduojamajame mene

Imituoti spalvotą moirą naudojant šiuolaikines technologijas ir vis tiek pasiekti kokybišką vaizdą gana sunku.

Geriausios spalvų schemos gaunamos iš audinių arba dailiai sukonstruotų tvorų.

Juodai balta muare labiau tinka eksperimentams. Pavyzdžiui, italų dizaineris Andrea Minini pradėjo eksperimentą kurdamas gyvūnų atvaizdus su grafiniu poslinkio efektu.

  • Siekdamas pasiekti sudėtingų formų ir gylio, jis pradeda piešti objektą nedideliu skaičiumi pagrindinių linijų.
  • Naudodamas Adobe Illustrator, Minini gilina dizainą įvairiomis kryptimis, sukurdamas nuostabios tekstūros muare raštus.
  • Kiekviena iliustracija yra unikali ir įdomi savo intensyvia išraiškingumu.

Muaro spalva ir forma, nuotr. Andrea Minini.

Bangos ant plakatų

Tačiau paprastai moira yra laikoma defektu arba artefaktu, ypač, pavyzdžiui, spausdinant spalvotus vaizdus, ​​​​kurie apima pustonių ekranų perdangą.

Tai yra stačiakampiai taškiniai raštai, tiksliau keturi iš jų, atspausdinti žalsvai mėlyna, geltona, purpurine ir juoda spalva. Dėmių ir dėmių visiškai atsikratyti nepavyks, tačiau palankiomis sąlygomis bendras vaizdas gana „tankus“, o erdvinis muare dažnis toks didelis, kad jo nepastebima.

Tiesą sakant, vizualiajame mene šis terminas reiškia pernelyg pastebimą iškraipymą, tai yra tyčinį bangų ir linijų naudojimą. Tiesa, muaro matomumas ne visada nuspėjamas. Viskas daroma bandymų ir klaidų būdu, todėl kartais gaunami nuostabūs vaizdai su neįprastais rezultatais, pavyzdžiui, Briano Thomaso paveiksle. Muarė su spalvos pasikeitimu parodyta toliau esančioje nuotraukoje.

Dabar jis televizijoje

Muaro raštai tekstilės pramonėje naudojami ilgą laiką. Karališkuosiuose kiemuose juostos iš audinio su blizgesiu tarnavo kaip garbės ženklas.

Tiriant mikroskopinius audinio įtempimo pokyčius, pagrindinės audimo gardelės deformaciją, pavyzdžiui, dešinėje esančios audimo gardelės atžvilgiu, visada gaunama vis naujų ir naujų muaro spalvų ir raštų.

Kad ir kaip bejaustume apie muare, negalime nesutikti, kad tai įdomus ir paslaptingas vizualinis efektas, verčiantis jį permąstyti, tyrinėti ir rasti pritaikymą kasdienėje realybėje.

Įkeliama...