Смысл UV

Автор Тема: Смысл UV  (Прочитано 5363 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Смысл UV
« : 17-12-2019, 15:22:29 »
Момент настал.
верно ли , что
Код - C# [Выбрать]
  1. Face.ComputeNormal(new UV(0.5, 0.5))
вычислит нормальный вектор начало которого будет в  геометрическом центре Face ?

верно ли , что в
Код - C# [Выбрать]
  1. new UV(u, v)
u  и v может принимать значение от 0 до 1 ?
 




Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Смысл UV
« Ответ #1 : 17-12-2019, 15:45:34 »
верно ли , что в
Код - C# [Выбрать]

    new UV(u, v)

u  и v может принимать значение от 0 до 1 ?
В общем случае может иметь и другие значения.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Смысл UV
« Ответ #2 : 17-12-2019, 15:50:40 »
Нет, не верно.

Через UV в Revit аналитически описываются поверхности, в зависимости от типа u, v имеет разный смысл, например, для цилиндра это:
Цитировать
The parametric equation of the cylinder is S(u, v) = center + radius*cos(u)*xVec + radius*sin(u)*yVec + v*zVec.

К "геометрическому центру" не имеет никакого отношения

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Смысл UV
« Ответ #3 : 17-12-2019, 16:03:18 »
The parametric equation of the cylinder is S(u, v) = center + radius*cos(u)*xVec + radius*sin(u)*yVec + v*zVec.
предчувствую начало трешака. ну ладно, зато интересно изучать будет

К "геометрическому центру" не имеет никакого отношения

а если Face плоский (прямоугольник на плоскости)?
Face.ComputeNormal(new UV(0.5, 0.5))
не вернет его вектор в центре?


Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Смысл UV
« Ответ #4 : 17-12-2019, 16:05:28 »
Для плоскости можно в любой точке нормаль будет одинакова. Можно, например
Код - C# [Выбрать]
  1. Face.ComputeNormal(UV.Zero)

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Смысл UV
« Ответ #5 : 17-12-2019, 16:11:15 »
я как то раньше думал что  значения в UV(u, v) работают аналогично

u=curveX.Evaluate(value, true)
v= curveY.Evaluate(value, true)

где (value = 0...1)

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Смысл UV
« Ответ #6 : 17-12-2019, 16:16:42 »
Вообще есть метод у Face-а:
Цитировать
public BoundingBoxUV GetBoundingBox()

В паре частных случаев (u, v) действительно будет в пределах 0..1, в чуть большем количестве случаев будет от (-u, -v) до (u, v), но я бы на всё это полагаться не стал

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Смысл UV
« Ответ #7 : 17-12-2019, 16:20:54 »
но я бы на всё это полагаться не стал
на что следует полагаться? нужно знать формулы для каждой фигуры  (плоскость, цилиндр, сфера и т.д.)?
подобно
The parametric equation of the cylinder is S(u, v) = center + radius*cos(u)*xVec + radius*sin(u)*yVec + v*zVec.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Смысл UV
« Ответ #8 : 17-12-2019, 16:23:19 »
на что следует полагаться?
А в чем вопрос? Зачем нужно знать формулу вычисления UV? Для получения вектора нормали в центре Face?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Смысл UV
« Ответ #9 : 17-12-2019, 16:24:20 »
А в чем вопрос? Зачем нужно знать формулу вычисления UV? Для получения вектора нормали в центре Face?
Я хочу понять физический смысл UV в принципе.
Сейчас я это понимаю как собственную координатную систему Face фигуры. за нуль координат принимается какая то точка на поверхности, и по значениям uv от нее по XY отсчитывается эти значения. если взять Face который является прямоугольником то максимальные значения будут от 0 до u=Ширина прямоугольника, v= Длина прямоугольника. UV нужна чтобы определить определенную точку на поверхности Face

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Смысл UV
« Ответ #10 : 17-12-2019, 16:25:37 »
Я хочу понять физический смысл UV в принципе
У него нет физического смысла. Точнее это некая абстракция для преобразования 2D в 3D.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Смысл UV
« Ответ #11 : 17-12-2019, 16:36:45 »
Координаты точек аналитической поверхности, смысл появляется для какой-то конкретной поверхности, если это плоскость, то u совпадает с XVec, v - c YVec, для цилиндра это угол поворота и смещение по его оси и т.д.

если взять Face который является прямоугольником

А вот тут уже путаешь мокрое с мягким. UV - именно для аналитических поверхностей, без учёта границ. Прямоугольные границы у тебя, например, могут не быть коллинеарными векторам, описывающим плоскость XVec и YVec, углы опять же никоим образом не обязаны совпадать с началом координат и т.д.