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

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

#1 Posted: 10/24/2010 1:08:53 PM
уни

уни

156 likes in 355 posts.

Group: 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 users liked this post
Serg 1/25/2014 12:34:00 PM
#2 Posted: 10/24/2010 1:27:15 PM
уни

уни

156 likes in 355 posts.

Group: User

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


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

Проблемы с reverse(). Она не работает в связке со stack(). Такая конструкция не работает в программном блоке:
вых:=stack(reverse(реш1);реш2)
Россия навсегда! Вячеслав Мезенцев
1 users liked this post
Serg 1/25/2014 12:34:00 PM
#3 Posted: 10/24/2010 1:50:52 PM
уни

уни

156 likes in 355 posts.

Group: User

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

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

Документ: Подушка.sm
Россия навсегда! Вячеслав Мезенцев
1 users liked this post
Serg 1/25/2014 12:34:00 PM
#4 Posted: 10/24/2010 2:30:05 PM
уни

уни

156 likes in 355 posts.

Group: 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 users liked this post
build_your_web 10/24/2010 4:53:00 PM, Serg 1/25/2014 12:34:00 PM
#5 Posted: 10/24/2010 4:50:35 PM
build_your_web

build_your_web

4 likes in 127 posts.

Group: User

Бублик особенно крут. Классно!
#6 Posted: 10/24/2010 11:39:26 PM
уни

уни

156 likes in 355 posts.

Group: User

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

[YOUTUBE]http://www.youtube.com/watch?v=EGbHbFCEtR8[/YOUTUBE]
Россия навсегда! Вячеслав Мезенцев
#7 Posted: 10/29/2010 1:37:41 PM
alekcey

alekcey

0 likes in 16 posts.

Group: 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 Posted: 10/29/2010 1:49:27 PM
уни

уни

156 likes in 355 posts.

Group: User

Ваша работа вот найду, покажу... по-моему у Вас там такой же получался, я и не стал дальше копать, тем более для Маткада это делать труднее.
Россия навсегда! Вячеслав Мезенцев
#9 Posted: 10/29/2010 2:11:39 PM
alekcey

alekcey

0 likes in 16 posts.

Group: User

Wrote

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


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

уни

156 likes in 355 posts.

Group: 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 Posted: 10/30/2010 4:21:55 AM
уни

уни

156 likes in 355 posts.

Group: User

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


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

уни

156 likes in 355 posts.

Group: User

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

Документ: implicitplot2d.sm
Россия навсегда! Вячеслав Мезенцев
#13 Posted: 10/31/2010 2:46:50 AM
уни

уни

156 likes in 355 posts.

Group: User

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

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

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

alekcey

0 likes in 16 posts.

Group: 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 Posted: 10/31/2010 4:12:07 PM
уни

уни

156 likes in 355 posts.

Group: 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 Posted: 1/25/2014 12:39:04 PM
Serg

Serg

7 likes in 105 posts.

Group: 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 Posted: 1/25/2014 2:35:46 PM
уни

уни

156 likes in 355 posts.

Group: User

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

Этот пример довольно сложный для SMath Studio.
Россия навсегда! Вячеслав Мезенцев
#18 Posted: 4/15/2014 11:19:33 AM
Fridel Selitsky

Fridel Selitsky

256 likes in 225 posts.

Group: Moderator

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




Kameshek1.smz (108 KiB) downloaded 108 time(s).
Метод расчета рычажных механизмов : http://www.exponenta.ru/educat/systemat/selitskiy-ivanov/index.asp
1 users liked this post
уни 4/15/2014 1:42:00 PM
  • New Posts New Posts
  • No New Posts No New Posts