|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
"виртуальный" 3D CAD / С#, GDL, LISP
Сообщений: n/a
|
||
Просмотров: 4227
|
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Планируется обертка над чужим csg движком? или разработка своего?
>>Теперь подробнее - почему виртуальный? птаму что ничего из графических библиотек использовать не планирую(потому что не нужно!) чисто аналитика - геометрия, алгоритмы. Зря, наверно интерактивный 3д редактор при таком подходе не нужен, но возможность хотябы просто рассмотреть\повертеть полученную модель не отходя от кассы ИМХО будет очень полезна. Темболее если всё уже посчитано - визуализация без интерактива не составит большого труда |
|||
![]() |
|
||||
Сообщений: n/a
|
"движок" - свой, вот в блендере авторы не стали париться - вся невидимая часть объекта усекается и всего то(055), в каркасном режиме наоборот проецируются все грани одинаково(056). Так работают все игровые движки(по 055), отсюда и скорость - невидимые(ну только по нормали которые) грани сразу не проецируются, частично закрытые - проецируются.
Читаю Никулина(http://www.cataloxy.ru/books/1401884...oy_grafiki.htm), еще есть это(057), думаю найду все ответы. Пока не дошел до работы с невидимой частью в плане - не отсекать, а "работать". Да, я согласен насчет визуализации, но мой наколеночный опыт говорит о том что придется долго и упорно добиваться нужных 2Д-результатов, так что виз непервостепенен. |
|||
|
||||
КМД Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 506
![]() |
Алилуйа! С Z-порядком разобрался! Обошлось даже без нормалей и триангуляции(сам не ожидал). Да и время просчета приемлимое...Разный цвет - глубина невидимости, принадлежность ребра каждой детали также отслеживается.
Теоретически алгоритм работает и с отверстиями, но пока все под отладкой, настраиваю...дыр в логике тоже хватает... PS: больше деталей здесь Последний раз редактировалось hexD, 01.08.2013 в 17:27. |
|||
![]() |
|
||||
Купи себе книжку "Алгоритмы. Руководство по разработке." Скиена. Там огромная библиотека алгоритмов + ссылки на библиотеки, в которых эти алгоритмы уже реализованы (бери да юзай).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
КМД Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 506
![]() |
уфф...оказалось что у нас не совсем простая задача...но свет в конце тунеля все таки показался...
подробности теоретически сплайны поддерживаются путем функции GraphicPath.Flattern, но если бы дело было только в этом... что то более менее серьезное связанное с 3д моделью подразумевает одну неотъемлимую часть - очерковые ребра, а это для меня уже не тривиально...моделлировать трубы семейством плоских граней...не комильфо...так что снова матчасть и опять месяцы отладки... описание сцены на скрине: Construction CS3 = new Construction("Экструда"); List<Point2D> mpg1 = new List<Point2D> { new Point2D(22, 20), new Point2D(65, 20), new Point2D(80, 40), new Point2D(65, 50), new Point2D(22, 50) }; List<Point3D> Hole1 = new List<Point3D> { new Point3D(25, 25, 0), new Point3D(60, 25, 0), new Point3D(60, 30, 0), new Point3D(32, 30, 0), new Point3D(32, 35, 0), new Point3D(38, 35, 0), new Point3D(38, 43, 0), new Point3D(44, 43, 0), new Point3D(44, 35, 0), new Point3D(60, 35, 0), new Point3D(60, 45, 0), new Point3D(25, 45, 0) }; List<Point3D> Hole2 = new List<Point3D> { new Point3D(30, 22, 10), new Point3D(60, 22, 10), new Point3D(60, 45, 10), new Point3D(30, 45, 10)}; List<Point2D> Base21 = new List<Point2D> { new Point2D(10, 10), new Point2D(20, 10), new Point2D(20, 20), new Point2D(30, 20), new Point2D(30, 10), new Point2D(40, 10), new Point2D(40, 40), new Point2D(30, 40), new Point2D(30, 30), new Point2D(20, 30), new Point2D(20, 40), new Point2D(10, 40)}; EXTRUDE EXT4 = new EXTRUDE(10, mpg1); EXT4.CreatePgnOnFace("0", Hole1); EXT4.CreatePgnOnFace("1", Hole2); //EXT4.SortRibsOnFace(EXT4.cf); Detail Det46 = new Detail(3); Det46.GeomBody = EXT4; CS3.Details.Add(Det46); CS3.Views.AddRange(SV.GetRange(7,3)); Последний раз редактировалось hexD, 05.10.2013 в 14:38. |
|||
![]() |
|
||||
КМД Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 506
![]() |
Хм...вот же непруха...
С 17-ой версии архикад умеет строить невидимый контур...не успел я со своими костылями... все же странно...почему раньше "не давали" этим пользоваться? А впрочем какая разница...пойду застрелюсь... ![]() Скоро сниму башнераздирающий видеотутор по созданию КМД в арчике! (Текла и эдванс - ацтой. ![]() https://www.dropbox.com/s/0zhr944t46...0%B0%D0%B4.rar (Смоделлено за 3 минуты) Последний раз редактировалось hexD, 16.10.2013 в 12:42. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP - 2D полилинию в 3D | Andrej | LISP | 22 | 25.04.2019 11:40 |
LISP. Вывод объема 3D тела. | Scorpio_1986 | LISP | 3 | 27.02.2010 13:02 |
Auto CAD Civil 3d 2009 и Windows XP | GEONIC | Вертикальные решения на базе AutoCAD | 8 | 24.04.2009 18:53 |
Lisp Как поставить диаметр отверстия на 3D solidе | P4s8x | LISP | 4 | 06.11.2008 19:31 |