Render.ru

узнать угол между гранями

#2
могу предложить один способ:
отделить курвы с выделенных ребер, затем экспортнуть в рино, а там это делается легко

з.ы. может быть и в майе есть замер углов, но я никогда не видел
 
#3
там это делается не легко! в Rhino и других CAD'ах, какими я пользуюсь,Моо измерятся лишь угол между тремя точками (двумя прямыми).
я думаю копать надо в таком направлении:

$u=<<2,-1, 1>>; $v=<<1,1,2>>;
angle $u $v;
// Result: 1.0472 //
rad_to_deg(`angle $u $v`);
// Result: 60 //

так меряется угол между двумя векторами.
если выбрать какое-либо ребро объекта box, то в component editore есть атрибуты с информацией о нормалях AdvPolygons>BoxShape1.vtxFace[n][m].normal.x(y,z)
только как это в скрипт объединить? хз…
Построениями заниматься не хочется т.к. углов туча
 
#4
угол между гранями = 180 - угол между нормалями (это по определению).
Однако просто так этой замечательной формулой воспользоваться не удается, хотя бы из тех соображений, что грани могут быть непланарными. Поэтому определить нормаль для грани представляется затруднительным. (Хороший вопрос: что мы видим, когда используем команду показать нормали?)
Нормали в системе определяются для каждой вершины. И если на грани был "навален" смуз, то эти норали совсем не похожи на геометрические нормали к граням.
Можно пойти немного более сложным, но надежным путем (в случае треугольных граней)
определяем три вершины, из которых состоит грань. Берем их координаты (например, командой pointPosition). получаем три вектора, например, $a, $b, $c
векторное произведение cross($b-$a, $c-$a) и даст нам нужную геометрическую нормаль. И далее по тексту
 
#5
уважаемый ЭфОдин, ваши поучения как всегда занимательны, но я об этом уже подумал и сразу сказал, что грани а) треугольные, б) нормали выравнены Normals > Set To Face. вот только с «далее по тексту» у меня нескладуха — mel темный лес :(.
 
#6
Поучать-то я как-раз никого не собираюсь...То, что Вы нашли мои рассуждения "занимательными" - греет душу. "Далее по тексту" - это означает. что после того как нормали определены, угол между ними находится так, как писал Leshiy. Атрибуты, по которым можно определить нормали посмотрите в ноде mesh. Извините, но полностью расписать мэл код время не позволяет. Так что Вы уж сами...
 
Сверху