Создайте пузырьковый эффект на OpenGL-ES сетки

Я создал сетку с 40 x 40 vertex3D (маленький, но полезный)

Я могу выбрать единственную вершину из той сетки путем простого вызывания функции с массивом положения [X] [Y] И поэтому граничу также. Как я могу поднять соседнюю вершину Z значение, таким образом, они отчасти похожи на пузырь или вид сферы штуки?

Мое первое жесткое должно было использовать:

Neighbor_vertex.Z = sin(PI/4 *  1 - ( 1/ distance_between_Neighbor_and_Pivot) ) * desired_Max_Height

Но все, что я получил, является чем-то как волна...., и я хотел бы иметь пузырь или Сферу как форма.

СПАСИБО чуваки и dudettes

1
задан Charles Michael 4 June 2010 в 21:37
поделиться

2 ответа

Ваша формула выглядит не совсем правильно. Попробуйте так:

Neighbor_vertex.Z = cos (PI / 2 * distance_between_Neighbor_and_Pivot) * desired_Max_Height;

Возможно, вы захотите изменить значение Z только если расстояние меньше 1.0.

Используете ли вы приложение Grapher для проверки формул? Я рекомендую его. Оно поставляется вместе с Mac.

1
ответ дан 3 September 2019 в 00:02
поделиться

Ребята, если вы хотите сделать сферическую форму пузыря, вам нужна обратная (дуговая) функция...

Итак, формула должна быть такой: Neighbor_vertex.Z = sin( arccos( distance_between_Neighbor_and_Pivot / Buble_Radius ) ) * Buble_Radius.

Изображение ниже поясняет формулу.

Sketch http://img175.imageshack.us/img175/6052/34440153.png

1
ответ дан 3 September 2019 в 00:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: