Skip to content

3DprintFIT/B242A-ADMesh-Assignment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

ADMesh Assignment

Před odevzdáním úlohy přes GitHub je třeba projevit souhlas se zpracováním osobních údajů.

Za tři body na cvičení naprogramujte program v jazyce C, C++, Python nebo Ruby, který pro zadaný STL soubor (první argument volání programu) najde nejvhodnější rotaci kolem osy Z tak, aby plocha obdélníkové podstavy pomyslného opsaného hranolu objektu byla co nejmenší – hrany pomyslného opsaného hranolu jsou rovnoběžné s osami X, Y nebo Z.

Do repozitáře vytvořeného na odkazu https://classroom.github.com/a/ojdq0WRI dejte soubor bestrot s příponou c, cpp, py nebo rb podle zvoleného jazyka (např. bestrot.c). Je povoleno použít pouze standardní knihovnu jazyka a ADMesh (u Ruby RADMesh).

Ilustrační obrázek z Netfabbu ukazující opsaný hranol s obdélníkovou podstavou:

Opsaný hranol

(Model CC BY-NC 3.0 © Daniel Moos.)

Program vypíše na standardní výstup úhel otočení (ve stupních), obsah podstavy opsaného hranolu (ten nejlepší nalezený), a do souboru zadaného druhým argumentem (z příkazové řádky) uloží orotovaný soubor v libovlném STL formátu (ASCII/binary).

Příklad výstupu:

65
897489645.867869

Pro ukázku můžete použít následující STL, ale program musí umět pracovat s jakýmkoliv STL.

Vhodný úhel nalezněte bruteforce metodou pro úhly otočení v násobcích 5° (5°, 10°, 15°, ...).

Vhodné funkce a údaje:

  • stl_rotate_z(&stl_in, angle_in_degrees) – rotuje kolem osy Z, o daný počet stupňů
  • <stl_file>.stats.number_of_facets je počet trojúhelníků v STL
  • <stl_file>.facet_start je ukazatel na první trojúhelník (a jde k němu přistupovat jako k poli)
  • trojúhelníky jsou uloženy v strukturách stl_facet obsahující v trojprvkovém poli vertex tři vrcholy (struktura stl_vertex obsahující tři floaty x, y a z)
  • zajímavé údaje jsou uloženy i ve stl_file.stats

Releases

No releases published

Packages

No packages published