Giter VIP home page Giter VIP logo

b232a-admesh-assignment's Introduction

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/aptjIQp1 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

b232a-admesh-assignment's People

Contributors

hroncok avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.