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

Программирование в NX. Определение направления измерения угла.


irina

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

Здравствуйте,

Подскажите как решить задачу, связанную с определением направления измерения угла между двумя векторами (против часовой стрелки или против).

Угол определяю след. образом:

 

UF_VEC3_cross(dir1, dir2, ccw);

UF_VEC3_angle_between(dir1, dir2, ccw, &angleRad);

 

Получаю значение угла. Теперь нужно в зависимости от направления измерения поставить "+" если вращение по часовой стрелке,  либо "-"  - если против. Подскажите как мне понять  это направление?

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


По правилу "правой руки". Большой палец вдоль положительного направления оси вращения. Сгиб указательного и среднего пальцев указывает на положительное значение угла.

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

UF_VEC3_angle_between - специально для этого и сделана, и именно для определения направления третий вектор вводится. Угол всегда от 0 до 360, и исходя из этого, и из того, что смотришь на два вектора с кончика третьего - вот и вычисляй направление.

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

Я не знаю как вычислить направление, поэтому и прошу помощи. Если возможно приведите пример как это сделать

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

Сделай три вектора
 
1. double v1[3] = {200.0, 10.00, 0.0};
2. double v2[3] = {2.000, 100.0, 0,0};
 
Эти два на бумажке карандашиком для себя нарисуй. В масштабе, на глазок. 
 
3. double v3[3] = {0.0, 0.0, 1.0} ; - это ссылочный вектор, на его острие ты "сидишь" и смотришь на первые два и поворот от первого ко второму будет ПРОТИВ часовой стрелки, как и положено в аналитической геометрии. Сидишь на Z, смотришь на X и Y, и поворот от Х к Y - против часовой.
 
Засовываешь свои векторы в функцию.

UF_VEC3_angle_between (v1, v2, v3, &angle );
 
Порядок имеет значение для v1 и v2.
 
И смотри на возвращенный угол, который означает, что чтобы получить вектор v2 нужно v1 повернуть ПРОТИВ часовой стрелки на именно этот угол. Угол меньше PI? Отлично, значит кратчайший поворот от v1 к v2 - против часовой стрелки.
 
Еще раз вызови функцию:

UF_VEC3_angle_between (v2, v1, v3, &angle );

 

О-па! А угол-то другой, и уже сильно больше PI. Значит, против часовой - длинный путь, и от v2 к v1 кратчайший поворот - по часовой.

 

Не благодари меня.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Orchestra2603
      Да, в рот мне ноги... Ну, считает же Ансис, считает! Блин.. Как до вас донести простой мэсеж. Мне често, пофигу, делает он там себе факторизацию или еще что-то. Но то, что он нормально считает Ланцошем для случая с вырожденной матрицей жесткости - это факт! А раз он считает, то либо (А) вы хрень несете про факторизацию, либо (Б) он такую факторизацию делат сам без проблем. Третьего тут быть не может, и выходит, что в любом случае ваши тезисы оказываются несостоятельными.   Какая вам нужна факторизация? давайте! заказывайте! На какие вам надо матрицы разложить? с какими свойствами? давайте ваш заказ!   Вы на мой пердак не зарьтесь! Смотрите, чтоб ваш функционировал исправно! А то того и гляди, фекализация случится.  
    • ДОБРЯК
      Вам похоже ничего не нужно, а для алгоритму Ланцоша нужно сделать численную факторизацию. Вам только нужно побольше букв и слов написать. :=) Всё подгорел пердак? :=)
    • Orchestra2603
      При чем здесь это? Речь не идет про эффективные или неэффективнеы алгоритмы. Вы утвержаете, что это просто невозможно.   При чем здесь первые или не первые, все или не все... Какое это имеет значение? У Ансис есть алгоритм Ланцоша, он находит столько, сколько запросите. В Маткаде - он да, находит все. Наверное, можно и не все, но я хз, как это делать. Я не понимаю, какое это имеет отношение к разговору.   Неа Ткните пальцем и объясните, в чем ошибка в конкретном рассуждении   Как я должен решать методом Гаусса задачу на собственные значения? Мне же не решения СЛАУ нужны! Их то, ясен пень, бесконечное множество для системы с вырожденной матрицей. Мне собственные значения нужны! Мне нужно базис найти, чтобы матрица (или матрицы в обобщенном случае) оператора была диагональной.   Сначала скажаите мне, зачем ее дать! В чем идея заключается? Вы все слюной брызжете, но ничего по делу еще не сказали. Какой-то нормальный контраргумент от вас можно толковый услышать?   Как еще изволите вас обслужить? Вы - полегче, уважаемый!
    • ДОБРЯК
      Вам нужно десять раз написать одно и тоже, чтобы вы поняли. Почитайте документацию к программе там же всё написано. Мне не сложно копировать...:=) Те алгоритмы которые вы используете находят все собственные числа и вектора. Для разреженных матриц это приводит к их заполняемости. Смекаете о чем я говорю. Или нужно еще разжевать? Во всех.   Решайте методом Гаусса. Матрица 2х2 в чем проблема сделать численную факторизацию любым методом? :=) Больше дела, меньше слов и букв...
    • mannul
      Скорость резания от 8 до 12 м/мин, подача 0,04 мм/зуб, глубина резания - 1,5 мм.
    • Orchestra2603
      " Стою на асфальте я, в лыжи обутый: То ли лыжи не едут, то ли я ..." (с)   1. Вы утверждаете, что для расчетов на СЗ и СВ в случае вырожденной матрицы жесткости нужно провести ее факторизацию. Без нее - никак! Непонятно, какую и зачем, но надо. Ок, допустим.  2. @Jesse,  я, @Fedor, да и вы сами показываете, что таки СЗ определяются для вырожденной матрицы. Значит, либо ваше утверждение про факторизацию неверно, либо она таки делается тихонько себе за кадром. 3. Еще одно наблюдение... Матлаб говорит, что он делает QZ разложение для матриц, у которых нет положительной определенности, т.е. для которых не работает разложение Холецкого. При этом опять же с собственные числа с одной вырожденной матрицей считаются нормально. Т.е. даже если вдруг и необходима такая факторизация (хотя я сомневаюсь, что вот прям обязательно она нужна), то делается она без особых трудностей.   В каком месте я неверно рассуждаю?   Так и не обязательно их записывать для расчета собственных колебаний. Ну... Можно конечно, но тогде некоторые частоты и формы, которые такой симметрией могут и не обладать, вы потеряете в расчете, поскольку введенные условия симметрии их исключат просто из модели.    
    • gudstartup
    • gudstartup
      у меня рободриллы и чпу и тем не менее picture нет наверно она к роботам относится
    • boomeeeer
      Если компания отечественная, то тоже нет смысла. Роботы, ЧПУ, лазеры и рободрилы
    • gudstartup
      это вряд ли если ось Y угловая а какая у вас редукция у вращающейся оправки? по 2мм нержавейки снимать это нелегкая задача для вашего маленького станочка
×
×
  • Создать...