Русскоязычный форум закрыт из-за отсутствия активности (доступен только для чтения).
Пожалуйста, пользуйтесь англоязычной его версией. Приносим извинения за неудобства
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Вход


Опции
К последнему сообщению К первому непрочитанному
Offline уни  
#1 Оставлено : 13 октября 2010 г. 19:46:48(UTC)
уни


Статус: 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)  | Причина: Не указана

Россия навсегда!
Вячеслав Мезенцев

Wanna join the discussion?! Login to your Форум проекта SMath forum account. Новые регистрации запрещены.

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