Render.ru

Как узнать длину сплайна

m_arik

Активный участник
Рейтинг
5
#1
Подскажите пожалуйста, как узнать длину сплайна.

Дело вот в чем: создаем, например, любой изогнутый сплайн, дублируем его, пихаем их в Loft Nurbs и создаем поверхность. Потом на эту поверхность кидаем bitmap'ный материал. Но для того, что бы точно знать размеры битмапной картинки необходимо знать длину сплайна, чтобы материал адекватно распределился по нему.

Раньше как-то приходилось делать банер натянутый на радиальную поверхность. Но там выкручивался при помощи Circle и старой доброй геометрии через углы, длину сектора окружности, когда длину текстуры для банера высчитывал в ручную.

Есть и еще куча моментов когда нужно знать длину сплайна.

Блольше чем уверен, что вопрос этот с длинной бородой, как борода старика Хотабыча. Долго мучил ослика, однако в инете гольняк. Или не там искал?

Может есть какие-нибудь далекие закоулки синьки, где можно подчерпнуть эту информацию или есть плагины?
 
Рейтинг
86
#2
Я извиняюсь, но по-моему, ты ерундой страдаешь. Прямой сплайн по длине адекватно можно глянуть в координатах, а загогулины только на глаз. Ты же не математические модели создаешь, а рекламную байду. Опять же имеет значение для визуальных искажений — в перспективной камере рендер или в параллельной. ¶
 

cinematek

Пользователь сайта
Рейтинг
2
#3
дядя-Владя! Позвольте с Вами не согласится.
Иногда необходимо в длинну сплайна "вбить" анимационный цикл. К примеру цикл хотьбы. В синей отсутствует возможность автоматом определииь соотношение длинны анимационного цикла: кол-во фреймов+длина шага. Поэтому приходится в ручную с помощью калькулятора сделать эти вычесления для того что бы избежать эфекта "лунной походки".
Поэтому знать длинну сплайна, который применяется для анимации по пути, очень нужно и ВАЖНО.
 

cinematek

Пользователь сайта
Рейтинг
2
#5
Кроме как "несоглашения", я лично не вижу, чем вы человеку помогли в сообщении. Ждём до новой звезды
дядя-Владя! Так я сам такой же страждущий :). Сам нуждаюсь в ответе на поставвленный вопрос.
Уповаю на Ваш продолжительный опыт.
 

m_arik

Активный участник
Рейтинг
5
#6
Доброго времени суток. Прочитав первые сообщения (перепалку между дядей Владей и cinematek), смеялся минут пять. Потом чуть ли не всплакнул.

Дядя Владя спасибо вам (прошу прощение за выражение) "за адекватную реакцию" //"- ...я лично не вижу, чем вы человеку помогли в сообщении."// И спасибо cinematek - значит не я один такой.

Смеялся я по той причине, что вопорс о длине сплайна возникает не только в синиме. На одном форуме по 3D Max одного парня прямо таки загнобили из-за того, что он задает дурацкие вопросы. Дескть "Накой она тебе нужна? Задаешь вопрос, но ради чего?" Парень не смог ответить. С другой стороны, в одном из примеров того-же Макса (http://www.silicontaiga.ru/home.asp?artId=6430) говориться следующее: "Узнайте длину сплайна, который является формой пути для гусеницы. Сделать это просто, достаточно выделить сам сплайн и воспользоваться утилитой Measure (Линейка), находящейся на вкладке Utilities (Сервис) панели управления. Там, в группе Shapes (Формы), будет указана длина сплайна" - длина сплайна требуется для построения размера трака кусеницы, которая будет анимирована по сплайну.

Я далек от 3D Max (пытался изучить, но после синьки он показался мудреным), однако при всем уважении, не может быть такого, что бы MAXON'овцы не предусматрели такой загвоздки. Пытался мурыжить инструмент Measure & Construction в синьке, по аналогу Макса, но не допер... :(

Буду презнателен, если эта тема не сгинет на страницах форума, а будет дан конкретный ответ. Если "Да", то как, если НЕТ, значит пора писать ноту протеста в MAXON.
 
Рейтинг
86
#7
Видимо, это один из так называемых "проклятых вопросов" (вопросов, не имеющих ответа, вроде: зачем мы живём, откуда мы взялись"). В реальности можно взять гибкий метр для ткани и приложить или приклеить его к криволинейной конструкции, но даже там будет погрешность от изгибания самого измерителя, имеющего, кстати, толщину. Лично я, например, никогда не задавался вопросом "на кой оно мне надо — вымерять криволинейный сплайн?". Сам был бы рад узнать как это возможно в компьютерной программе. Может, в программном обеспечении для станков с ЧПУ это имеется. Там, где нурбс имеет стратегическое значение. ¶
 

m_arik

Активный участник
Рейтинг
5
#9
Не надо уж так в крайности, дяд Владя. Впрочем ваш рисунок тоже имеет место быть.
Однако для простейших кривых: круг, овал, дуга, гипербола, парабола и всех еже сними можно было бы вставить функцию вычисления. Куда это все приложить, я уже обрисовал. А погрешность всегда будет, об этом спора нет.
Насколко я помню из курса вышки. Все решается путем математических формул. На ПК это все сводится к алгоритмам расчета, опять же через те же функии и т.п.
Вопрос еще можно поставить немного по другому: хватит ли мощностей у машины что бы высчитать всю эту дребедень? С другой стороны в синьке заложены построение поверхности по формулам, да и построение всяких там поверхностей типа Landskape (я не буду лезть совсем в дебри) для синьки не составляет труда.
Значит разработчики проглядели... И не учли того, что одну и ту же задачу можно решить несколькими способами, пусть и не совсем явными для окружающих (при этом я ни в коей мере не заикаюсь об особенностях программы - в синке это делается так, в максе по другому, а в майя.... :)...

Будем ждать новой звезды.
 

G-Kir

Знаток
Рейтинг
20
#10
В xpresso есть оператор spline, а в нем параметр Length.
Собственно этот параметр возвращает длину сплайна.
Перетаскиваем требуемый сплайн в икспрессо и добавляем выходной порт 'object'
Вытаскиваем оператор 'spline' (вкладка general) и добавляем оператору выходной порт Length
Соединяем 'object' нашего сплайна с 'object' оператора 'spline'
А вот как выковыривать возвращаемое значение -- это каждый может сделать как ему хочется. Можно прямо на вьюпорт в HUD вывести, можно как параметр любого другого объекта (ну например положение по горизонтали), можно присоединить порт Length к оператору Result (тоже вкладка general) и смотреть прямо в редакторе икспрессо, короче говоря на любой вкус.
 

G-Kir

Знаток
Рейтинг
20
#13
Он любой сплайн мерит.
Я даже проверил как замеряет длину кривой безье Adobe Illustrator, а потом эту же кривую замерил в синеме. Результат абсолютно идентичный.
(только надо учесть что при импорте AI-шных файлов, нужно в параметрах ставить коэффициент 0.353)
 

EGGO

Мастер
Рейтинг
167
#14
Измерить-то можно криволинейку, тока через другую программку (тот же КАД или Рина) - через экспорт в сплайноваримый формат (dxf например). Вот для прикрепленного сплайна через рину узнал, что длина его 5786 мм (работаю и в рине и в синей в мм). Если заморочиться можно наверное и через Хпрессо нахечить чего, тока в этом уж совсем не силен... Короче вот Вам такой способ, а пользоваться им или нет - Ваша прирогатива... Вообще, по мне он какой-то шибко vyjujryjgrjdsq получается... ;)
 

Вложения

m_arik

Активный участник
Рейтинг
5
#17
Премного благодарен.
Обидные слова в сторону MAXON беру назад - был не прав.
Прихожу к мысли, что синьку даже и на 1/4 незнаю.
Раньше тоже думал нафиг мне Xпрессо, однако это мощная штука. Полез искать манулы.
Учиться, учиться и еще раз учиться. Радует, что ни когда не позно.
 

Maxime OS

Пользователь сайта
Рейтинг
2
#20
G-Kir, спасибо большое за подсказку! Если не трудно, подскажите пожалуйста, как вытащить значение"Result" в HUD?
СПасибо!
 
Сверху