1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

точно расположить точки на кривой

Тема в разделе "Maya", создана пользователем puffy:-)gizmo, 7 апр 2004.

Модераторы: Dark™, Skif
  1. puffy:-)gizmo

    puffy:-)gizmo Активный участник

    С нами с:
    23.07.2002
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    17
    а можно-ли к готовой кривой из двух точек добавить точки так, чтобы они были ровно расположены, по центру - потом по краям от центра, но по центру от центральной точки и конечной... понятно? ситуация такая: две точки мне известны, но они черти как расположены в пр-ве и расчитать положение центральной не так-то просто.. можно, конечно, с листочком бумаги и ручкой, но хотелось бы попроще... чертова аналитическая геометрия..
     
  2. Vytali

    Vytali Активный участник

    С нами с:
    18.04.2003
    Сообщения:
    200
    Симпатии:
    0
    Баллы:
    17
    Ты не мудри! Ты на пальцах покажи!

    ...Есть такая штука, rebuild curve называется...
     
  3. Guest

    ну так чем тебе инсерт кнот с галкой битвин селекшен не нравится?
    только ты уточнил бы, какие точки ты имеешь ввиду, св или еп?
     
  4. Vytali

    Vytali Активный участник

    С нами с:
    18.04.2003
    Сообщения:
    200
    Симпатии:
    0
    Баллы:
    17
    >надо однако понимать, что речь идет не о цв

    разумеется не о цв
     
  5. Vytali

    Vytali Активный участник

    С нами с:
    18.04.2003
    Сообщения:
    200
    Симпатии:
    0
    Баллы:
    17
    between не ставит новые точки строго по центру спана.
     
  6. Guest

    да конечно.
    надо однако понимать, что речь идет не о цв
     
  7. Guest

    Between Selections inserts the knot halfway between a pair of selected curve points.
     
  8. Guest

    Только это "halfway" имеет отношение к параметризации, а не к длине кривой...
     
  9. Vytali

    Vytali Активный участник

    С нами с:
    18.04.2003
    Сообщения:
    200
    Симпатии:
    0
    Баллы:
    17
    Где-нибудь у человека сказано об 1 degree?
     
  10. Guest

    у человека кривая из двух точек. естественно 1-degree
    какая бы там не была параметризация, это "halfway" будет как раз посередине спана.
    чего не так?
     
  11. Guest

    ну а если кривая все-так 3-degree ))
    и параметризация на этом спане неоднородная.. то инсерт кнот явно отдыхает, пока этой курве не сделать юниформ ребайлд, который естественно подвинет цв и изменит форму..
    так что вот виталик, в этом случае ребайлд тоже особо не поможет.
    тут непонятно, про что собственно был вопрос, и какая у человека было курва..
    все таки мне кажется имелась ввиду 1-degree curve
    ну да ладно )
     
  12. puffy:-)gizmo

    puffy:-)gizmo Активный участник

    С нами с:
    23.07.2002
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    17
    нет, curve - не 1 degree - ситуация такая: есть первые две точки кривой положение которых я изменить не могу, после них аривая продолжается и следует еще несколько точек... мне нужно добавить еще одну точку точно посередине - между первой и второй (чтобы положение первой и второй не изменилось). положение остальны, в принципе, свободное - я могк их двигать как хочу..
     
  13. Guest

    объясни, посередине - это таким образом, чтобы длины полученных после инсерта точки спанов были одинаковы?
    и насколько точно тебе это нужно? просто если у тебя на первом спане параметризация однородная, то инсерт кнот с педалькой битвин вставит тебе еп как раз как ты хочешь.
    чем менее однородна параметризация тем больше будет погрешность..
     
  14. puffy:-)gizmo

    puffy:-)gizmo Активный участник

    С нами с:
    23.07.2002
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    17
    да, чтобы длины полученных после инсерта точки спанов были одинаковы.да, и еще такой момент - вторая точка - она на самом деле не одна, а три точки с одикаковыми координатами..
    так,что сейчас идет сначала одна точка, потом та, которую мне нужно вставить, потом три с одикаковыми координатыми..
    а вообще, может я ссылкуна скрин прислать смогу - чтобы нагляднее было.
     
  15. Guest

    Hедавно спpашивала - что значит фpаза "I don"t know" - и никто не знает!

    Пришлось самой копать

    string $curve = "curve1"; //curve1- название твоей курвы
    string $arcLD = `arcLengthDimension ( $curve + ".u[1]" )`;
    float $arcLength = `getAttr ( $arcLD + ".arcLength" )`;
    float $arcLengthH = $arcLength/2; //половина длины спана

    Вот. Теперь бы по длине узнать u-координату точки на кривой, и вставить бы туда knot. Что-то меня постоянно пpеследyют yмные мысли - но я всегда быстpее.

    insertKnotCurve -ch on -p ... $curve ;

    Еще немного и я умру :о(
     
  16. Guest

    Зато роет
     
  17. puffy:-)gizmo

    puffy:-)gizmo Активный участник

    С нами с:
    23.07.2002
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    17
    спасибо, Kivius, за скрипт. думаю, он многим прогодится.. только, насколько я понял, этот скрипт рассчитан на нахождение центральной точки всей кривой, а не между двумя, отдельно взятыми точками.. и еще один момент: чтобы знать u точно - нужна cv с весом, больше 1 (как сказали выше), или три cv с одинаковыми координатами, ну или degree 1. в этом случае лучше правда использовать insert knot и between selections..
    в своем случае я сделал так: первая точка, следуящая и т.д несколько раз. положение первых двух двух я менять не могу. далее, в районе второй точки я добавил еще две по бокам, потом задал им одну координату. потом между самой первой точкой и трех с одной координатой - insert knot и between selections.
     
  18. Guest

    Никому он не пригодится, потому что не дописан. К сожалению, возможности медицины безграничны - ограничены лишь возможности пациентов... :о)))

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

    Чтобы добавить дополнительные точки конкретно в место, где уже есть EP, можно, например, написать команду, чтобы не париться:

    insertKnotCurve -add off -p 1 -nk 3 curve1;

    где
    curve1 - название кривой
    -p 1 - твоя 2-ая EP (опять же при однородной параметризации, )
    -add off nk 3 - добавляет в существующем месте knots, чтобы всего их было 3.

    Единственная проблема, я не понимаю, почему создается новая кривая, называемая curve1insertedKnotCurve1.
    Впрочем, эту проблему тоже можно решить, написав
    delete curve1;
    rename curve1insertedKnotCurve1 curve1;
    :о)))
    Кивиус добрался до Мела, теперь глупости на форуме будет во много раз больше. Прости, ЭфОдин, несёт... :о(
     
  19. Guest

    "Несет" это не страшно, гораздо менее приятная история, когда "проносит"... Утверждается, что в API есть функция, возращающая параметр по длине... Ну а нам по старинке, придется воспользоваться методом бескончного спуска или любого другого (секущих, Ньютона) для нахождения корня нелинейного уравнения, а именно таковой является задача нахождения значения параметра по длине дуги кривой...в полевых условиях...
     
  20. Guest

    Я подумаю над этим, но не знаю, как долго это будет продолжаться и чем все это закончится. :о)))
     
Модераторы: Dark™, Skif

Поделиться этой страницей