|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
31.05.2013, 09:14 | #1 | |
C#.NET. Matrix3d.Projection не создана для работы?
Регистрация: 09.02.2009
Сообщений: 9
|
||
Просмотров: 2425
|
|
||||
Переведи.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Регистрация: 09.02.2009
Сообщений: 9
|
спасибо, что ответили.
сначала перевожу себя: имеется ввиду абсурдная точка зрения, намекающая на то, что функция проекции работает на столько хитро, что трудность в её запуске(используя мой бессильный разум) стремится к бесконечности, в итоге почти всегда получается ошибка: "eCannotScaleNonUniformly", или же функция просто не работает совсем. перевод сообщения ошибки: судя по всему, он говорит, что не может масштабировать не равномерно, или нечто не равномерное. но и попытки упростить условия для достижения максимальной равномерности всего, чего только выдумал, не привели к иному результату, кроме всё той же ошибки. проекция - понятие широкое, и возможно моя задача по проецированию точек на определенную поверхность этой функцией не решается, а я пытался заставить верблюда ловить мышей... или в моем клиническом случае действительно скромная документация по функции - бесполезна. поиск до сих пор не возвращает мне примеров кроме закомментированных или понятных описаний. что, кстати, и возвращает нас к моей цитате из вашего сообщения. |
|||
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
вот он вред АПИ и C#-а налицо, задача проецирования точки решается занулением одной из координат, если плоскость одна из 3х координатных, а если и нет, то чуть чуть открыть учебник по аналитической геометрии и все. Этот метод нужно использовать для тел, и т.п. объектов до описания которых и так просто не добраться (либо автодеск против) либо очень сложно.
|
|||
|
||||
Пока ни верблюда, ни мышей я не увидел - кусок кода давай. Тогда и поговорим. Похоже что ты пытаешься преобразовать не точки (Point3d), а примитивы AutoCAD (наследники Entity). Так вот далеко не для каждого типа Entity можно выполнить преобразование, при котором коэффициенты по X, Y, Z отличаются. В качестве примера - круг (Circle). Если матрица преобразования не униформная (т.е. масштабные коэффициенты по X, Y, Z отличные), то из круга должен получится эллипс (Ellipse), т.е. поменяется тип примитива, а это недопустимо. Вот тогда AutoCAD и выдаёт исключение eCannotScaleNonUniformly. Если бы ты почитал документацию по ObjectARX, то понял бы это.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Регистрация: 09.02.2009
Сообщений: 9
|
Цитата:
понятно, и, если вам интересно, у меня же было намерение сократить работу по проецированию набора более простых примитивов на плоскость с малопредсказуемыми параметрами. но суть вопроса уже давно не в этом. от него остался лишь интерес о том, как вообще работает эта функция. Цитата:
и да, я ожидал того, что с меня спросят код с темой- он стёрт и забыт. впрочем, задача уже не стоит и решена, и места для функции нашей темы в ней не нашлось. я бы даже сказал, что проекция была бы даже лишней в ней, рукотворная функция-велосипед для проецирования позже пригодилась и для абстрактных вычислений, а также, стала источником нужных параметров в других местах программы. но тогда я перебирал варианты и осваивал возможности .NET в Автокаде, и перепробовано было многое - думаю, что 30-50 различных тестовых вариантов набралось. от того и мое недоумение. и, кажется, идеи использовать для начала примитив по проще и проекцию до максимума простую, возможно, даже без искажений, были безуспешно реализованы тоже. в связи с дефицитом информации именно об этой функции, кусок простейшего рабочего кода нужен мне, а не вам - нерабочего, т.к. помощи в решении задачи я не прошу - не нужна она мне, только совершенно любой пример, да и то - уже от праздного любопытства. но, возможно, ваш ответ поможет и другим спелеологам по дырам в опубликованной технической документации. как-нибудь вернусь с информацией, которую здесь получил, к этому вопросу в среду VS и, если снова ничего не выйдет, опубликую куски неудачного кода). опять спасибо. |
|||
|
||||
Много слов... Код я просил только для того, чтобы понять исключение "eCannotScaleNonUniformly" давал вызов Matrix3d.Projection или вызов Entity.TransformBy с матрицей полученной при помощи Matrix3d.Projection? Если первое, то это странно. Если второе, то так и должно быть для большого класса примитивов, о чем я уже писал выше.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
О ценах на проектные и изыскательские работы для строительст | 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 |