Мазмуну:
Video: 3D Viewer: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Салам! Программалоого болгон кызыгуумду канааттандыруу үчүн жана сиздикин канааттандырууга жардам берүү үчүн, мен сизге JavaScript менен коддолгон 3D Viewer көрсөткүм келет. Эгерде сиз 3D оюндары боюнча түшүнүгүңүздү өркүндөткүңүз келсе же өзүңүздүн 3D оюнду түзгүңүз келсе, анда бул 3D прототип сиз үчүн идеалдуу.
1 -кадам: Теория
Бул 3D көрүүчүнүн теориясын түшүнүү үчүн, сиз жөн гана айланаңызга болгон көз карашыңызды текшере аласыз (бул бир гана маанилүү жарык булагына ээ болууга жардам берет). Байкаңыз:
- Сизден алыстагы объекттер көрүү талааңыздын кичине бөлүгүн ээлейт.
- Жарык булагынан алысыраак болгон объекттер кара түстө көрүнөт.
- Беттер жарык булагына параллелдүү (перпендикулярдуу) болуп калганда, алар кара түстө көрүнөт.
Мен бир чекиттен (көз алмасына окшош) келип чыккан бир топ сызыктар менен аян талаасын көрсөтүүнү чечтим. Көз чарасынын ар бир бөлүгү бирдей чагылдырылышын камсыз кылуу үчүн, чукул топ сыяктуу, сызыктарды бирдей жайгаштыруу керек. Жогорудагы сүрөттө, топтун ортосунан алыстап баратканда, баштык топтон келген сызыктар кандай аралыкта болуп калганын байкаңыз. Бул объектилер борбордук чекиттен алыстаган сайын линиялардын тыгыздыгы төмөндөгөндүктөн, программанын 1 байкоосун ишке ашырууну элестетүүгө жардам берет.
Саптар программанын негизги көрүнүш бирдиги болуп саналат жана алардын ар бири дисплейде пикселге түшүрүлөт. Сызык объекти менен кесилишкенде, анын тиешелүү пиксели жарык булагынан алыстыгына жана жарык булагына болгон бурчуна жараша түстүү болот.
2 -кадам: Ишке ашыруу теориясы
Программаны жөнөкөйлөтүү үчүн, жарыктын булагы борбордук чекит менен бирдей (көздүн кареги: карта карала турган жана сызыктар келип чыккан чекит). Жарыкты бетиңиздин жанында кармоо сыяктуу, бул көлөкөлөрдү жок кылат жана ар бир пикселдин жарыктыгын алда канча оңой эсептөөгө мүмкүндүк берет.
Программа ошондой эле сфералык координаттарды колдонот, анын башында көздүн борбору жайгашкан. Бул сызыктарды оңой түзүүгө мүмкүндүк берет (ар биринин уникалдуу тетасы бар: горизонталдуу бурч жана phi: вертикалдуу бурч) жана эсептөөлөрдүн негизин түзөт. Ошол эле тетасы бар саптар ошол эле саптагы пикселдерге картага түшүрүлөт. Тиешелүү бурчтардын фисси пикселдердин ар бир катарында көбөйөт.
Математиканы жөнөкөйлөтүү үчүн, 3D карта жалпы өзгөрмөлүү (жалпы x, y же z) тегиздиктерден турат, ал эми калган эки жалпы эмес өзгөрмө ар бир тегиздиктин аныктамасын бүтүрүп, диапазондо чектелген.
Чычкан менен айлананы кароо үчүн, сфералык жана xyz координат системаларынын ортосундагы айлануу учурунда программанын теңдемелери вертикалдуу жана горизонталдуу айланууга таасир этет. Бул көрүнүш сызыктарынын "баштуу топ" топтомунда айланууну алдын ала түзүү таасирин тийгизет.
3 -кадам: Математика
Төмөнкү теңдемелер программага ар бир объектинин кайсы сызыктар менен кесилишерин жана ар бир кесилиш тууралуу маалыматты аныктоого мүмкүнчүлүк берет. Мен бул теңдемелерди негизги сфералык координаталык теңдемелерден жана 2D айлануу теңдемелеринен алдым:
r = аралык, t = тета (горизонталдык бурч), p = phi (вертикалдуу бурч), A = Y огунун айлануусу (вертикалдуу айлануу), B = Z огунун айлануусу (горизонталдуу айлануу)
Kx = (sin (p)*cos (t)*cos (A)+cos (p)*sin (A))*cos (B) -sin (p)*sin (t)*sin (B)
Ky = (sin (p)*cos (t)*cos (A)+cos (p)*sin (A))*sin (B)+sin (p)*sin (t)*cos (B)
Kz = -син (p)*cos (t)*sin (A)+cos (p)*cos (A)
x = r*Kx
y = r*Ky
z = r*Kz
r^2 = x^2+y^2+z^2
жарык = Klight/r*(Kx же Ky же Kz)
p = arccos ((x*sin (A)*cos (B)+y*sin (A)*sin (B)+z*cos (A))/r)
t = arccos ((x*cos (B)+y*sin (B) -p*sin (A)*cos (p))/(r*cos (A)*sin (p)))
4 -кадам: Программа
Бул прототип 3D көрүүчү сизге 3D виртуалдык чындыктын иштешин түшүнүүгө жардам берди деп үмүттөнөм. Дагы бир нече өркүндөтүү жана коддоо менен, бул көрүүчү, албетте, 3D оюнду иштеп чыгууда колдонулушу мүмкүн.
Сунушталууда:
Кантип кадам эсептегич жасоо керек?: 3 кадам (сүрөттөр менен)
Step Counter кантип жасалат ?: Мен көптөгөн спортто жакшы аткарчумун: жөө басуу, чуркоо, велосипед тебүү, бадминтон ойноо ж.б. Мейли, менин ичимди карачы ……. Ооба, баары бир мен машыгуу үчүн кайра баштоону чечтим. Мен кандай жабдыктарды даярдашым керек?
Акустикалык левитация Arduino Uno менен кадам-кадам (8-кадам): 8 кадам
Акустикалык левитация менен Arduino Uno Step-by-Step (8-кадам): ультрадыбыштуу үн өткөргүчтөр L298N Dc аял адаптеринин электр энергиясы менен камсыздоосу эркек токту Arduino UNOBreadboard Бул кантип иштейт: Биринчиден, сиз Arduino Uno кодун жүктөп бересиз (бул санарип менен жабдылган микроконтроллер) жана аналогдук порттор кодду айландыруу үчүн (C ++)
Java Viewer менен Arduino Baby Monitor: 8 кадам (Сүрөттөр менен)
Java Viewer менен Arduino Baby Monitor: Бөлмөдөгү шарттарды байкоо үчүн Arduino негизделген көп сенсордук блокту куруңуз. Бул аппарат нымдуулукту, температураны, кыймылды жана үндү сезе алат. Ардуинодон сериялык маалыматтарды алган Java негизделген көрүүчү тиркелет
Headup Web Cam Viewer: 7 кадам
Headup Web Cam Viewer: Акыркы жазуу колдонуучуларга веб камерасына түз кароого мүмкүндүк берүү үчүн коммерциялык системаны карады, ошол эле учурда алар сүйлөшүп жаткан адамды - Teleprompter стили - бул менин оюм боюнча. Негизги нерсени куруу оңой
Digital 3D Picture Viewer - "DigiStereopticon": 6 кадам (сүрөттөр менен)
Санариптик 3D Сүрөт Көрүүчү - "DigiStereopticon": Стереоскопиялык сүрөт тартуу жакпай калды. Бул, балким, адамдар үй -бүлөлүк сүрөттөрдү көрүү үчүн атайын көз айнек тагынууну жактырышпайт. Бул жерде 3D сүрөтүңүздү тартуу үчүн бир күндүн ичинде жасай турган кызыктуу кичинекей долбоор