Форум проекта SMath
»
SMath Studio
»
Предложения
»
Марширующие кубы и неявные поверхности
Статус: Advanced Member
Группы: Registered
Зарегистрирован: 02.06.2009(UTC)
Сообщений: 346
Сказал «Спасибо»: 50 раз Поблагодарили: 156 раз в 105 постах
Mathcad не имеет таких возможностей как построение неявных поверхностей. Даже на плоскости не может построить f(x,y)=0.
Я считаю это позорным для такой программы. Алгоритм уже лет 30 везде используется, а до маткада так и не дошёл.
Моё предложение :
сделать внутренние функции для построения неявно заданных функций .
Derive (упокой его душу) запросто с этим справлялся.
Алгоритм существует в двух вариантах:
1. Это непосредственно Марширующие кубы (Лоренс и Клайн).
2. Апгрейд - Марширующие кубы 33.
Для плоского случая делается по аналогии. Исходники программ есть в сети.
Алгоритм вкратце для 2D случая: Область построения разбивается на прямоугольники. В получившейся сетке находят значения функции f(x,y) в каждом узле - это потенциалы. Далее перебирают все прямоугольники и смотрят на знак потенциалов в вершинах. Если вершины противоположного знака, то на ребре есть точка f(x,y)=0 и линия проходит по этой точке. Далее хитрым приёмом осуществляется перебор небольшого количества вариантов расположения линий внутри прямоугольника и запоминаются координаты полученных отрезков для каждого. Потом все наборы отрезков отрисовываются.
Всё очень просто.
Вот пример в Mathcad:
Mathcad - implicitplot2d.pdf Отредактировано пользователем 15 октября 2010 г. 11:50:31(UTC)
| Причина: Не указана
Россия навсегда! Вячеслав Мезенцев
Форум проекта SMath
»
SMath Studio
»
Предложения
»
Марширующие кубы и неявные поверхности
Быстрый переход
Форум проекта SMath
SMath Studio
- Скачать SMath Studio
--- Архив
--- Ночные сборки
- Примеры использования
- Вопросы по использованию
- Предложения
- Ошибки
Математика
- Документы
- Алгоритмы
- Математические задачи
Общение
- О проекте
- Общение
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.