Cub rotativ în mathcad, parsare și delphi

Da, mergem de la tema delphi și parserii de azi. Doar puțin despre zilnic.

De ce un astfel de post? Aici, de exemplu, a existat un motor pro 3d pe delphi. care este foarte condiționată poate fi numită asta. Doar recalcularea coordonatelor, și chiar și atunci nu cea mai bună cale. Acum vom face mai deștept, dar vom face totul în matkadah. Și ce? De asemenea, programarea.







În primul rând, despre cum să desenați segmente pe o diagramă în MathCAD: trebuie să creați doi vectori de aceeași mărime care să conțină coordonatele punctelor, respectiv X și respectiv Y. Iar aceste puncte, matkadul se va conecta prin segmente dacă acești vectori sunt indicați în grafic. exemplu:

Cub rotativ în mathcad, parsare și delphi

Acum, imaginați-vă că acesta este cazul: avem două sisteme de referință în trei dimensiuni: primul merge mai departe, vom trece de-al doilea (. Vezi mai jos), este, de asemenea, cubul nostru.

Setați coordonatele punctelor cubului:

Cub rotativ în mathcad, parsare și delphi

Acum este aproape noapte, și nimic mai inteligent decât această funcție a apărut :) Poate fi mai simplu, am făcut-o deja, dar fișierul a rămas pe un alt computer. Da și bine. Avem opt puncte:

Cub rotativ în mathcad, parsare și delphi

Am aruncat o privire curată, în dosarul final nu ar trebui să fie așa. Acum, cum să conectați aceste puncte, astfel încât toate marginile cubului să fie vizibile (se repetă mai multe segmente - este imposibil de ținut "curat"):






Cub rotativ în mathcad, parsare și delphi

Înțelegi? Ei bine, să revenim la acest ordin mai târziu, când vom scoate complet cubul rotit. După cum vă amintiți, aceste puncte sunt în sistem, care este rotit față de cel principal. Cum se transformă? Da, desigur, trei colțuri! Să presupunem că știm toate cele trei unghiuri, dar cum putem recalcula coordonatele punctelor? Este simplu: folosiți matricea de rotație. Trei matrici: rotiți pe un unghi de-a lungul axei X, de-a lungul axei Y și de-a lungul axei Z, aici:

Cub rotativ în mathcad, parsare și delphi

Mai multe despre matricea de rotație citit în Wikipedia, în principiu, totul este pur și simplu de ieșire. În ultima linie din figura de mai sus funcția care va da vectorul de radius al punctului dorit, este suficient să setați numărul și trei colțuri.

În spațiul tridimensional, au fost obținute punctele, cum vom deduce? Una dintre proiecții, de exemplu, pe planul 0xy, este suficientă. Acum este momentul să specificăm două vectori, unde în ordinea care este pictată cu creionul meu într-una din imaginile de mai sus, coordonatele x și y ale punctelor vor fi:

Cub rotativ în mathcad, parsare și delphi

Optimizați codul, dacă există o dorință, acum sunt leneș. Și este ceva de optimizat. Ce altceva avem nevoie pentru animație: variabila FRAME. Fără animație, este zero. În timpul animației, numărul cadrului. Vom avea de la 1 la 100. Să stabilim legile pentru schimbarea unghiurilor pentru animație:

Au dat funcții aleatorii (citiți la întâmplare, poate că se vor dovedi frumos). Construim!

Cub rotativ în mathcad, parsare și delphi

Nu este încă foarte convingător? Începem animația:

Cub rotativ în mathcad, parsare și delphi







Articole similare

Trimiteți-le prietenilor: