| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > C#.NET. Matrix3d.Projection не создана для работы?

C#.NET. Matrix3d.Projection не создана для работы?

Ответ
Поиск в этой теме
Непрочитано 31.05.2013, 09:14 #1
C#.NET. Matrix3d.Projection не создана для работы?
radioactive_wheel
 
Регистрация: 09.02.2009
Сообщений: 9

У меня есть мнение, что метод Matrix3d.Projection по замыслу должен возвращать ошибку: "eCannotScaleNonUniformly".
Как ни старался, ничего другого не вытряс из неё. Был бы рад одному рабочему примеру с проекцией, объяснению её сути или же обвинениям в мою сторону).

Последний раз редактировалось radioactive_wheel, 31.05.2013 в 09:41.
Просмотров: 2425
 
Непрочитано 03.06.2013, 02:36
#2
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от radioactive_wheel Посмотреть сообщение
У меня есть мнение, что метод Matrix3d.Projection по замыслу должен возвращать ошибку: "eCannotScaleNonUniformly".
Переведи.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 08.07.2013, 09:59
#3
radioactive_wheel


 
Регистрация: 09.02.2009
Сообщений: 9


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Переведи.
спасибо, что ответили.
сначала перевожу себя: имеется ввиду абсурдная точка зрения, намекающая на то, что функция проекции работает на столько хитро, что трудность в её запуске(используя мой бессильный разум) стремится к бесконечности, в итоге почти всегда получается ошибка: "eCannotScaleNonUniformly", или же функция просто не работает совсем.

перевод сообщения ошибки: судя по всему, он говорит, что не может масштабировать не равномерно, или нечто не равномерное.
но и попытки упростить условия для достижения максимальной равномерности всего, чего только выдумал, не привели к иному результату, кроме всё той же ошибки.

проекция - понятие широкое, и возможно моя задача по проецированию точек на определенную поверхность этой функцией не решается, а я пытался заставить верблюда ловить мышей... или в моем клиническом случае действительно скромная документация по функции - бесполезна. поиск до сих пор не возвращает мне примеров кроме закомментированных или понятных описаний. что, кстати, и возвращает нас к моей цитате из вашего сообщения.
radioactive_wheel вне форума  
 
Непрочитано 08.07.2013, 23:27
#4
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


вот он вред АПИ и C#-а налицо, задача проецирования точки решается занулением одной из координат, если плоскость одна из 3х координатных, а если и нет, то чуть чуть открыть учебник по аналитической геометрии и все. Этот метод нужно использовать для тел, и т.п. объектов до описания которых и так просто не добраться (либо автодеск против) либо очень сложно.
Sleekka вне форума  
 
Непрочитано 09.07.2013, 01:37
#5
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от radioactive_wheel Посмотреть сообщение
и возможно моя задача по проецированию точек на определенную поверхность этой функцией не решается, а я пытался заставить верблюда ловить мышей...
Пока ни верблюда, ни мышей я не увидел - кусок кода давай. Тогда и поговорим. Похоже что ты пытаешься преобразовать не точки (Point3d), а примитивы AutoCAD (наследники Entity). Так вот далеко не для каждого типа Entity можно выполнить преобразование, при котором коэффициенты по X, Y, Z отличаются. В качестве примера - круг (Circle). Если матрица преобразования не униформная (т.е. масштабные коэффициенты по X, Y, Z отличные), то из круга должен получится эллипс (Ellipse), т.е. поменяется тип примитива, а это недопустимо. Вот тогда AutoCAD и выдаёт исключение eCannotScaleNonUniformly. Если бы ты почитал документацию по ObjectARX, то понял бы это.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 10.07.2013, 15:29
#6
radioactive_wheel


 
Регистрация: 09.02.2009
Сообщений: 9


Цитата:
Сообщение от Sleekka Посмотреть сообщение
вот он вред АПИ и C#-а налицо, задача проецирования точки решается занулением одной из координат, если плоскость одна из 3х координатных, а если и нет, то чуть чуть открыть учебник по аналитической геометрии и все. Этот метод нужно использовать для тел, и т.п. объектов до описания которых и так просто не добраться (либо автодеск против) либо очень сложно.
ошарашенно таю в ярком сиянии вашего разума, спасибо). задача и правда была давно и быстро решена подъемом из анабиоза знаний из первых курсов вуза.
понятно, и, если вам интересно, у меня же было намерение сократить работу по проецированию набора более простых примитивов на плоскость с малопредсказуемыми параметрами.
но суть вопроса уже давно не в этом. от него остался лишь интерес о том, как вообще работает эта функция.

Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Пока ни верблюда, ни мышей я не увидел - кусок кода давай. Тогда и поговорим. Похоже что ты пытаешься преобразовать не точки (Point3d), а примитивы AutoCAD (наследники Entity). Так вот далеко не для каждого типа Entity можно выполнить преобразование, при котором коэффициенты по X, Y, Z отличаются. В качестве примера - круг (Circle). Если матрица преобразования не униформная (т.е. масштабные коэффициенты по X, Y, Z отличные), то из круга должен получится эллипс (Ellipse), т.е. поменяется тип примитива, а это недопустимо. Вот тогда AutoCAD и выдаёт исключение eCannotScaleNonUniformly. Если бы ты почитал документацию по ObjectARX, то понял бы это.
если вы говорите о документах по ObjectARX, находящихся в архиве с ним, то они действительно совсем не помогли. лишь одна строчка общей характеристики функции. подумал, что форум - тоже не без преимуществ структурированная разновидность документации с биологическим интеллектом. наверное, общение - порой то, чего не хватает, как солнца полярной ночью.

и да, я ожидал того, что с меня спросят код с темой- он стёрт и забыт. впрочем, задача уже не стоит и решена, и места для функции нашей темы в ней не нашлось. я бы даже сказал, что проекция была бы даже лишней в ней, рукотворная функция-велосипед для проецирования позже пригодилась и для абстрактных вычислений, а также, стала источником нужных параметров в других местах программы.
но тогда я перебирал варианты и осваивал возможности .NET в Автокаде, и перепробовано было многое - думаю, что 30-50 различных тестовых вариантов набралось. от того и мое недоумение. и, кажется, идеи использовать для начала примитив по проще и проекцию до максимума простую, возможно, даже без искажений, были безуспешно реализованы тоже.

в связи с дефицитом информации именно об этой функции, кусок простейшего рабочего кода нужен мне, а не вам - нерабочего, т.к. помощи в решении задачи я не прошу - не нужна она мне, только совершенно любой пример, да и то - уже от праздного любопытства. но, возможно, ваш ответ поможет и другим спелеологам по дырам в опубликованной технической документации.

как-нибудь вернусь с информацией, которую здесь получил, к этому вопросу в среду VS и, если снова ничего не выйдет, опубликую куски неудачного кода).
опять спасибо.
radioactive_wheel вне форума  
 
Непрочитано 10.07.2013, 15:47
#7
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Много слов... Код я просил только для того, чтобы понять исключение "eCannotScaleNonUniformly" давал вызов Matrix3d.Projection или вызов Entity.TransformBy с матрицей полученной при помощи Matrix3d.Projection? Если первое, то это странно. Если второе, то так и должно быть для большого класса примитивов, о чем я уже писал выше.
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > C#.NET. Matrix3d.Projection не создана для работы?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
О ценах на проектные и изыскательские работы для строительст Vlad® Прочее. Архитектура и строительство 61 23.05.2018 11:48
Кто понесет уголовную (или прочую) ответственность в случае разрушиния здания/сооружения? VAV Прочее. Архитектура и строительство 317 18.12.2012 03:13
Временная защита неэксплутаруемого здания от осадков ing-e Прочее. Архитектура и строительство 16 06.12.2011 00:11
Поиск работы Perezz!! Разное 46 21.03.2008 12:50
Моделирование работы свай p_sh Основания и фундаменты 4 08.08.2005 14:41