Სარჩევი:
ვიდეო: 3D Viewer: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:20
გამარჯობა! პროგრამირებისადმი ჩემი ინტერესის დასაკმაყოფილებლად და იმედია დაგეხმარებით თქვენი დაკმაყოფილებაში, მე მინდა გაჩვენოთ 3D Viewer, რომელიც javascript- ში მაქვს კოდირებული. თუ გსურთ გაეცნოთ 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 = -sin (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 თამაშის შემუშავებაში.
გირჩევთ:
ნახევარი ნაბიჯი: 5 ნაბიჯი (სურათებით)
სემინარი: IntroduçãoNeste projeto, você construirá um an sistema de semáforos: არსებობს 3 LED ნათურები სხვადასხვა ბირთვით (verde, amarelo e vermelho) para imitar os semáforos dos carros; არსებობს 2 LED ნათურები სხვადასხვა ბირთვით (verde და vermelho) იმისთვის, რომ გააკეთოთ
Arduino Uno თევზის მიმწოდებელი 6 იაფი და მარტივი ნაბიჯი!: 6 ნაბიჯი
Arduino Uno თევზის მიმწოდებელი 6 იაფი და მარტივი ნაბიჯი! შინაური ცხოველების მქონე ადამიანებს, ალბათ, იგივე პრობლემა ჰქონდათ, როგორც მე: შვებულება და დავიწყება. მე მუდმივად მავიწყდებოდა ჩემი თევზის გამოკვება და ყოველთვის ვცდილობდი ასე გამეკეთებინა სანამ ის წავიდოდა
აკუსტიკური ლევიტაცია Arduino Uno– ით ეტაპობრივად (8 ნაბიჯი): 8 ნაბიჯი
აკუსტიკური ლევიტაცია Arduino Uno– სთან ერთად ეტაპობრივად (8 საფეხური): ულტრაბგერითი ხმის გადამცემები L298N Dc მდედრობითი ადაპტერი დენის წყაროს მამაკაცის dc pin Arduino UNOBreadboard და ანალოგური პორტები კოდის გადასაყვანად (C ++)
ნაბიჯი: 4 ნაბიჯი
聲納: 改作: https: //aboutsciences.com/blog/arduino-radar-using … 我 在 原本 聲納 的 ar ar ar ar ar: arduino uno, 感測器, 馬達, 喇叭: 掃描 到 物品 加速 並 傳 述 cm cm cm cm cm cm cm 10 სმ 時 喇叭 會
Arduino Baby მონიტორი Java Viewer– ით: 8 ნაბიჯი (სურათებით)
Arduino ბავშვის მონიტორი Java Viewer– ით: ააშენეთ Arduino– ზე დაფუძნებული მრავალსენსორიანი ერთეული, რათა დააკვირდეთ ოთახში არსებულ პირობებს. ამ ერთეულს შეუძლია იგრძნოს ტენიანობა, ტემპერატურა, მოძრაობა და ხმა. ერთვის java დაფუძნებული მაყურებელი, რომელიც იღებს სერიულ მონაცემებს arduino– დან