Визуализация поверхностей

Визуализация поверхностей - Сообщения

#1 Опубликовано: 24.10.2010 13:08:53
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

По точкам.

Пример 1. Уравнение [MATH]f(x;y;z)←x^2+y^2+z^2+sin(4*x)+cos(3*y)+sin(2*z)-4.486[/MATH]

Документ: Blobby2.sm
Как это выглядит в Mathcad'е: Blobby2.pdf

Пояснения: Берётся одна начальная точка на поверхности. Далее алгоритм скользит вдоль поверхности и вычисляет точки вдоль перпендикулярных направлений. Сначала вычисляется одна линия поверхности как результат пересечения поверхности и плоскости, а затем эти найденные точки кривой используются для построения перпендикулярных линий пересечения поверхности и другой плоскости. Т.о. можно получить облако точек, принадлежащих поверхности.
Россия навсегда! Вячеслав Мезенцев
1 пользователям понравился этот пост
Serg 25.01.2014 12:34:00
#2 Опубликовано: 24.10.2010 13:27:15
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

Пример 2. Уравнение Пфаффа "Камешек"


Документ: Камешек.sm

Проблемы с reverse(). Она не работает в связке со stack(). Такая конструкция не работает в программном блоке:
вых:=stack(reverse(реш1);реш2)
Россия навсегда! Вячеслав Мезенцев
1 пользователям понравился этот пост
Serg 25.01.2014 12:34:00
#3 Опубликовано: 24.10.2010 13:50:52
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

Пример 3. Подушка

Уравнение: [MATH]f(x;y;z)←y^2+(x^2-y^2)^2+z^2-1[/MATH]

Документ: Подушка.sm
Россия навсегда! Вячеслав Мезенцев
1 пользователям понравился этот пост
Serg 25.01.2014 12:34:00
#4 Опубликовано: 24.10.2010 14:30:05
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

Пример 4. Бублик
Уравнение: [MATH]a←1[/MATH] [MATH]c←1.1[/MATH] [MATH]f(x;y;z)←(c-sqrt(x^4+y^4))^2+sin(z)^2-a^2[/MATH]


Будет желание, посчитайте: Бублик.sm
Россия навсегда! Вячеслав Мезенцев
2 пользователям понравился этот пост
build_your_web 24.10.2010 16:53:00, Serg 25.01.2014 12:34:00
#5 Опубликовано: 24.10.2010 16:50:35
build_your_web

build_your_web

4 сообщений из 127 понравились пользователям.

Группа: User

Бублик особенно крут. Классно!
#6 Опубликовано: 24.10.2010 23:39:26
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

Бублик построен в Mathcad, также как и мой аватар. Если бы вычисления происходили на низком уровне в неуправляемом коде на уровне ассемблера, то можно было бы строить картинки красивее, а так время тратится на интерпретацию и многочисленных посредников.

[YOUTUBE]http://www.youtube.com/watch?v=EGbHbFCEtR8[/YOUTUBE]
Россия навсегда! Вячеслав Мезенцев
#7 Опубликовано: 29.10.2010 13:37:41
alekcey

alekcey

0 сообщений из 16 понравились пользователям.

Группа: User

Wrote

Пример 4. Бублик
Уравнение: [MATH]a←1[/MATH] [MATH]c←1.1[/MATH] [MATH]f(x;y;z)←(c-sqrt(x^4+y^4))^2+sin(z)^2-a^2[/MATH]
Будет желание, посчитайте: Бублик.sm


Вячеслав Николаевич, чего это Вы? Картинка совсем не такая. Ведь поверхность неограниченная…
#8 Опубликовано: 29.10.2010 13:49:27
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

Ваша работа вот найду, покажу... по-моему у Вас там такой же получался, я и не стал дальше копать, тем более для Маткада это делать труднее.
Россия навсегда! Вячеслав Мезенцев
#9 Опубликовано: 29.10.2010 14:11:39
alekcey

alekcey

0 сообщений из 16 понравились пользователям.

Группа: User

Wrote

Ваша работа вот найду, покажу... по-моему у Вас там такой же получался, я и не стал дальше копать, тем более для Маткада это делать труднее.


Так что же, и я когда-то молод был, горяч, спешил… Значит и там, где было, надо бы исправить. Поэтому и говорю о развитии, а не о повторе старого…
#10 Опубликовано: 29.10.2010 14:27:58
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

Вот документ с выкладками в Mathcad'е: Бублик.pdf

И у меня и у Вас была нарисована правда, просто от стыка видимо отскочил решатель:
[MATH]f(x;y;z)←(1.1-sqrt(x^4+y^4))^2+sin(z^2)-1^2[/MATH] - я поспешил, тут [MATH]z^2[/MATH], а не [MATH]sin(z)^2[/MATH]


Ааа, я начальную точку взял не точно и ориентация секущих плоскостей возможно неудачна - это yOz и xOy. Может надо было покосее взять. Для сфер формулы получаются страшнее, а самое главное, Маткад их считает дольше. Вот и причина таких "казусов".
Россия навсегда! Вячеслав Мезенцев
#11 Опубликовано: 30.10.2010 04:21:55
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

Картинка у Алексея правильная, я ошибся при переписывании. Всё равно, построенная мной картинка верна правда не даёт полной картинки и вводит в некоторое заблуждение.


Мою реализацию следует использовать немножко по-другому. При использовании вспомогательных сфер меняется только дифурчик.
Россия навсегда! Вячеслав Мезенцев
#12 Опубликовано: 30.10.2010 10:16:24
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

Если убрать соединительные линии между отрезками, то будет красиво работать:

Документ: implicitplot2d.sm
Россия навсегда! Вячеслав Мезенцев
#13 Опубликовано: 31.10.2010 02:46:50
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

Тот же самый алгоритм (Лоренсена и Клайна - Марширующие кубы) для пространства 3D:

Документ: implicitplot3d_параболоид.sm
Дополнительные файлы: edgeTable и triTable

П.С.: Если убрать соединительные линии, то будет красиво.
Алгоритм: http://www.graphicon.ru/oldgr/courses/cg03b/assigns/hw6/
Россия навсегда! Вячеслав Мезенцев
#14 Опубликовано: 31.10.2010 16:07:12
alekcey

alekcey

0 сообщений из 16 понравились пользователям.

Группа: User

Wrote

...


Не хотелось Вас огорчать, но на всякий случай проверьте картинку, Вас здесь представляющую. Если, конечно, это ей соответствует:
1 + (((x-0.61*cos(0.5*Pi*x))^2 +(y-0.61*cos(0.5*Pi*y))^2-0.9)^2 + (2*z)^2)*(((x^8+y^8+z^8)*0.4^8)^6-1) = 0
#15 Опубликовано: 31.10.2010 16:12:07
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

Я проверял, Алексей Борисович
Меня трудно огорчить.
with(plots):
implicitplot3d(1 + (((x-0.61*cos(0.5*Pi*x))^2 +(y-0.61*cos(0.5*Pi*y))^2-0.9)^2 + (2*z)^2)*(((x^8+y^8+z^8)*0.4^8)^6-1)=0, x=-3..3, y=-3..3, z=-3..3, grid=[21,21,21]);
Эту картинку я поэлементно создавал, перебрав кучу вариантов. То, что это именно она можно и вручную посмотреть, сделав ряд преобразований и упрощений.

Вот ещё подобная формула (у меня есть несколько вариаций на эту тему):
[YOUTUBE]http://www.youtube.com/watch?v=ejZv9vcBlgI[/YOUTUBE]
Россия навсегда! Вячеслав Мезенцев
#16 Опубликовано: 25.01.2014 12:39:04
Serg

Serg

7 сообщений из 105 понравились пользователям.

Группа: Moderator

Wrote

Пример 4. Бублик
Уравнение: [MATH]a←1[/MATH] [MATH]c←1.1[/MATH] [MATH]f(x;y;z)←(c-sqrt(x^4+y^4))^2+sin(z)^2-a^2[/MATH]


Будет желание, посчитайте: Бублик.sm



Не смог посчитать. Ошибка - "Значение вышло за пределы максимально допустимого положительного числа" (скриншот прилагаю)
Скриншот 2014-01-25 20.36.07.png
Ученье свет!
#17 Опубликовано: 25.01.2014 14:35:46
уни

уни

156 сообщений из 355 понравились пользователям.

Группа: User

Нужно подобрать численный решатель для системы ДУ. В примере он выполнен в виде программы и этот вариант устарел уже, хотя должен быть работоспособен. Это решатель с фиксированным шагом. Можно попробовать другие решатели, в т.ч. для жестких систем. Нужно перебрать решатели из плагинов ODESolvers и DotNumerics, они имеют одинаковый интерфейс вызова. Также нужно уменьшить количество точек и шаг сетки. В любом случае, даже если какая-то картика будет, она не очень прояснит структуру поверхности.

Этот пример довольно сложный для SMath Studio.
Россия навсегда! Вячеслав Мезенцев
#18 Опубликовано: 15.04.2014 11:19:33
Fridel Selitsky

Fridel Selitsky

256 сообщений из 225 понравились пользователям.

Группа: Moderator

Уни,Ваш плагин rkfixed с фиксированным шагом прекрасно работает
с Вашими же примерами.Поверхности отображены на плоские графики.




Kameshek1.smz (108 КиБ) скачан 72 раз(а).
Метод расчета рычажных механизмов : http://www.exponenta.ru/educat/systemat/selitskiy-ivanov/index.asp
1 пользователям понравился этот пост
уни 15.04.2014 13:42:00
  • Новые сообщения Новые сообщения
  • Нет новых сообщений Нет новых сообщений