Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2011-06-17

Головоломка

А сегодня я осознал, почему так невообразимо сложно решить задачу с углами. Ту, где надо вычислить угол поворота блока при вставке в чертеж, при условии, что известен угол для OCS, координаты даются в WCS а вставку надо делать в UCS. И в общем случае все три координатные системы ни разу не совпадают.

Так вот, осознал я. Задача трехмерная! И пытаться решить ее в плоскости — безумие. В плоскости можно найти только частные решения, что я сам себе и демонстрировал целую неделю.
Тормоз, да.

Уж очень я неудачно себе тесты подобрал. Из этих тестов не видно, что ось Z меняет направление, что приводит к отзеркаливанию изображения блока. А у меня большая часть блоков обладают симметрией. И только когда я напоролся на блок без симметрии, я увидел, что мощно тормознул.
Ну и AutoCAD «помог», не без этого. Он же фактически двумерный, куда ни плюнь — х,у. Так глаз и замылился. Чтобы увидеть Z, надо проявить находчивость и знание матчасти. Но эта маскировка не отменяет трехмерности модели чертежа. Что и проявилось во всей красе в задачке с поворотом блоков.

Зато потом какое облегчение, трудно поверить. В трехмерке решение простое и даже изячное, особенно по сравнению с теми, что я плодил для двумерки.

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) Klaipeda (13) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)