Перейти к публикации

Заданное количество точек на кривой (UGOpen)


avd

Рекомендованные сообщения

Господа... как будет по английски "мне нужна помощь" (с)

Задача следующая: у меня есть таг кривой. Надо кривую "разбить" на энное количество отрезков (надо координаты). пробовал следующее:

1. узнал длину кривой

2. разделил длину кривой на заданное количество отрезков - получил длину отрезка

3. UF_MODL_ask_curve_points (curve_a, 0.0, 0.0, arc_lenght_seg_curve_a, &num_pt_curve_a, &pt_curve_a)

4. смотрю, а количество рассчитанных точек и заданное мною не совпадает, например, задаю 229 точек, а получаю 310

Попробовал по другому

1. Нашел координату начала кривой (point_a0)

2. UF_MODL_ask_point_along_curve(point_a0, curve_a, arc_lenght_seg_curve_a, 1, 0.001, &parameter)

странно, но функция UF_MODL_ask_point_along_curve_2(point_a0, curve_a, arc_lenght_seg_curve_a, 1, 0.001, point_a1, &parameter) не работает

3. По параметру определил координату

4. Повторить п.2 до конца кривой

Ну что то мне подсказывает, что все делается проще. В интерактиве есть команда Вставить-Базы/точка-Набор точек-Точки кривой-равная длина, там задается кол-во точек. Это то что мне надо!

Что посоветуете... какой диагноз?

Ссылка на сообщение
Поделиться на других сайтах


"Help me, please..." будет по-английски

Поднималась эта тема на форуме (поищи), похоже - функции API кривовато работают. 

Ссылка на сообщение
Поделиться на других сайтах

"Help me, please..." будет по-английски

Поднималась эта тема на форуме (поищи), похоже - функции API кривовато работают. 

За англицкий низкий поклон.... ))))

поискал конечно поверхностно, не нашел.... прочитал ответ.... устыдился и стал искать подробнее и... <noindex>был вопрос</noindex> ответа не было, был <noindex>вариант</noindex>, но у меня вопрос как сделать поуниверсальней

Ссылка на сообщение
Поделиться на других сайтах

Лёш, твоя проблема в том что ты неправильно понимаешь смысл arc_lenght_seg_curve_a

- это не длина вдоль линии, это длина хорды

UF_MODL_ask_curve_points (curve_a, 0.0, 0.0, arc_lenght_seg_curve_a, &num_pt_curve_a, &pt_curve_a)

PS/

Хм, собственно если ты сплайн хочешь заменить ломаной из линий (отрезками прямых линий с равной длиной)

то UF_MODL_ask_curve_points - это то что тебе и требуется, а если надо ещё и конкретное количество отрезков,

то это в цикле, но боюсь в этом случае точно 229 может не получаться.....

Ссылка на сообщение
Поделиться на других сайтах

- это не длина вдоль линии, это длина хорды

UF_MODL_ask_curve_points (curve_a, 0.0, 0.0, arc_lenght_seg_curve_a, &num_pt_curve_a, &pt_curve_a)

ну это я экспириенсе заметил, поэтому данный команд мне не подходит

Хм, собственно если ты сплайн хочешь заменить ломаной из линий (отрезками прямых линий с равной длиной)

то UF_MODL_ask_curve_points - это то что тебе и требуется, а если надо ещё и конкретное количество отрезков,

то это в цикле, но боюсь в этом случае точно 229 может не получаться.....

Мне собственно требуется именно разбить кривую (в моем случае сплайн) на требуемое количество отрезков.

У меня получилось только так:

1. Нашел координату начала кривой (point_a0)

2. UF_MODL_ask_point_along_curve(point_a0, curve_a, arc_lenght_seg_curve_a, 1, 0.001, &parameter)

3. По параметру определил координату point_a1

4. point_a0=point_a1

5. Повторить п.2 до конца кривой

Правда есть проблема с концом кривой, но в моем случае я :blush: закрываю глаза и другие части тела.

Но вопрос остается открытым, как точно разделить кривую на заданное и равное количество отрезков.

Ссылка на сообщение
Поделиться на других сайтах

Мне собственно требуется именно разбить кривую (в моем случае сплайн) на требуемое количество отрезков.

У меня получилось только так:

1. Нашел координату начала кривой (point_a0)

2. UF_MODL_ask_point_along_curve(point_a0, curve_a, arc_lenght_seg_curve_a, 1, 0.001, &parameter)

3. По параметру определил координату point_a1

4. point_a0=point_a1

5. Повторить п.2 до конца кривой

Правда есть проблема с концом кривой, но в моем случае я :blush: закрываю глаза и другие части тела.

Но вопрос остается открытым, как точно разделить кривую на заданное и равное количество отрезков.

Непонятно в чем проблема

Алгоритм приведен правильный - проверен неоднократно

Все должно работать

В чем проблема, насколько неправильно считает

Вы проверьте свой олгоритм не на 200 отрезках а на одном или 2

Точность попробуйте поставить не 10е-3 а хотя бы 10е-6

Ссылка на сообщение
Поделиться на других сайтах

Непонятно в чем проблема

Алгоритм приведен правильный - проверен неоднократно

Все должно работать

В чем проблема, насколько неправильно считает

Вы проверьте свой олгоритм не на 200 отрезках а на одном или 2

Точность попробуйте поставить не 10е-3 а хотя бы 10е-6

Действительно проблемы нет. Все ОК
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...