Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Как разбить треугольник?

Как разбить треугольник?

aziНовичокwww10 фев. 200311:16#0
Есть сфера(R=1), есть равносторонний треугольник с вершинами на сфере.
Нужно разбить треугольник на такую конфигурацию (новые три точки - на середине каждой старой грани)

  /\
/_\
/\ / \
------

Причем три новые точки разместить(как?) на сфере так, чтобы новые четыре тругольнка были тоже равносторонние.

Нахождение центра ребра и сдвиг это точки по вектору радиуса на сферу(нормализация , при R=1) не придлагать.

VultureПостоялецwww10 фев. 200311:56#1
Создавай нужное количество вертексов на этапе создания шара.
ZПостоялецwww10 фев. 200315:05#2
azi
Товарисщ, а ну прочитайте что Въ написали - надо чтобъ новъе точки бъли в середине граней и чтобъ лежали на сфера, а потом - нахождение центра ребра и нормализацию не предлагать???? Дък ето одно и то же, блин.... вопрос то в чем, не понятно....
VultureПостоялецwww10 фев. 200315:25#3
Zemedelec Вот я и говорю, забебал он.

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

СеменПостоялецwww10 фев. 200315:37#4
Zemedelec
Видимо, имеется ввиду что точки должны находиться на ребре, но не обязательно на середине. Потому что если делать
> Нахождение центра ребра и сдвиг это точки по вектору радиуса на сферу(нормализация , при R=1)
то получившиеся треугольники будут неравносторонние.

Я, кстати, сомневаюсь что вообще есть решение.

ZПостоялецwww10 фев. 200316:42#5
Semen
Если и есть, то точно посередине должнъ бъть точки. Совсем другое дело, что ето возможно только при нескольких вариантах сферъ на которой етот треугольник лежит - (тетрахедрон, куб и икосахедрон). А уж совсем другое дело, что наверно ему и сроду равносторонние не нужни, лишь бъ ближе к ним бъли, но...
Вопросъ задавать, тоже весщь непростая.
СеменПостоялецwww10 фев. 200316:48#6
Zemedelec
Я, конечно, со всем согласен и все такое.

Только вот меня насторожила фраза
> Совсем другое дело, что ето возможно только при нескольких вариантах сферъ на которой етот треугольник лежит - (тетрахедрон, куб и икосахедрон)
Как это может от типа разбиения-то зависеть? Дан треугольник. Соединяем середины ребер. Вопрос - получатся ли равносторонние треугольники?.

Я вот понимаю, что от размеров может зависеть. Но уж никак не от типа разбиения.

Требую извинений!! :))

KasheyПостоялецwww10 фев. 200317:35#7
даже если сферу составить из равностороних треугольников тот не факт что она будет "правильная"
получиться что-то типо 6х ерешашах панцирей( ну мне показались похожими на это).
ZПостоялецwww10 фев. 200317:38#8
Semen
Етот треугольник лежит на сфере, ето ведь часть вопроса. Если в равнине все, то ясно, будут равносторонние все, при условии что и он.
А вот если на сфере, то тогда беря точки в середине ребер, строя вектора и нормализируя их (=R), то тогда новъе треугольники получатся равносторонними, только при определенной curvature етой сферъ.
Ну, то что я сказал про фигуръ - забудте, временное помешательство. :)
ZПостоялецwww10 фев. 200317:46#9
Kashey
Зависит от детайлизации. Зато намного лучше, чем сфера построенная на сферичной параметризации. А если пошли с куба строить, то такое легко можно затекстурить cubemap-ом, и текстурнъе координатъ сгенерить заодно...
beavisПостоялецwww10 фев. 200319:42#10
Допустим v1, v2, v3 - векторы из центра сферы в каждую из трех точек треугольника, а R - радиус сферы.
Тогда вектор в новую точку будет равен:
v = normalize(v1 + v2 + v3) * R = (v1 + v2 + v3) * (1/3)
ZПостоялецwww10 фев. 200320:21#11
beavis
тъ не совсем прав. т.е. тъ совсем не прав... :))
никакие ето равносторонние треугольники не даст, а номер с 1/3... просто кул :)
beavisПостоялецwww11 фев. 200311:24#12
Zemedelec
> совсем не прав ...

Точно, это просто способ получить еще одну точку на сфере (не считая 1/3:)
Насколько я понимаю, равносторонний треугольник можно получить только поделив каждую из его граней пополам.

/ Форум / Программирование игр / Графика

Тема в архиве.

2001—2018 © GameDev.ru — Разработка игр