Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Predat0r
0 / 0 / 0
Регистрация: 21.08.2012
Сообщений: 53
#1

Найти координаты, лежащие на окружности, равноудаленные на заданный угол друг от друга - C++

28.07.2014, 08:02. Просмотров 643. Ответов 3
Метки нет (Все метки)

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

Нужна помощь с математикой, а именно (если не ошибаюсь) с матрицами.

Вкратце опишу то что хочу.
У меня есть какая то координата(x, y, z). Мне нужно найти другие координаты лежащие на окружности (радиус так же задается) равноудаленные на заданный угол друг от друга.

Кликните здесь для просмотра всего текста
Название: Безымянный.png
Просмотров: 82

Размер: 3.3 Кб


Это я вроде бы сделал, получил синус, косинус соответственно Y и X умножил на радиус после прибавил к реальным координатам, это работает.

Но проблема в том что нужно повернуть эти точки относительно трех углов Эйлера.
Искал в интернете вроде бы как нашел код матрицы вращения:

Кликните здесь для просмотра всего текста

http://www.gamedev.ru/code/articles/...ix_quat?page=4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
A      = cos(angle_x);
B      = sin(angle_x);
C      = cos(angle_y);
D      = sin(angle_y);
E      = cos(angle_z);
F      = sin(angle_z);
 
AD     =   A * D;
BD     =   B * D;
 
mat[0] =   C * E;
mat[1] =  -C * F;
mat[2] =  -D;
mat[4] = -BD * E + A * F;
mat[5] =  BD * F + A * E;
mat[6] =  -B * C;
mat[8] =  AD * E + B * F;
mat[9] = -AD * F + B * E;
mat[10]=   A * C;
 
mat[3] =  mat[7] = mat[11] = mat[12] = mat[13] = mat[14] = 0;
mat[15]=  1;


Теперь сам вопрос: что нужно сделать с данными конечной матрицы что бы имея радиус можно было получить координату x, y, z?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2014, 08:02     Найти координаты, лежащие на окружности, равноудаленные на заданный угол друг от друга
Посмотрите здесь:

Динамическая матрица (Найти координаты двух точек, наиболее удалённых друг от друга) - C++
Дана динамическая матрица размера N*2 (N вводится). Каждая строка матрицы содержит значения координат X и Y одной точки на плоскости,...

Нарисовать заданное количество точек окружности, равноудалённых друг от друга - C++
Ребят, помогите! Делаю исследовательскую работу по математике и встал в ступор при первой же проблеме! Юзаю GLUT. Нужно нарисовать n точек...

Определить, пересекаются ли окружности, касаются друг друга или не имеют общих точек - C++
Задача 2. Две окружности заданы координатами центра и радиусами. Определить, пересекаются ли они, касаются друг друга или не имеют общих...

Найти наименее удаленные друг от друга точки на плоскости - C++
Приветствую ребята! Нужна помощь, помогите решить задачу на С++, Заранее благодарен. В файле содержатся координаты нескольких точек...

Найти две наиболее удаленных друг от друга точки - C++
Структуры: I. Решить задачу, используя структуру point для хранения координат точки: Множество точек задано в пространстве. Найти две...

Найти элементы массива наименее отличающиеся друг от друга - C++
Доброго времени суток, помогите пожалуйста реализовать программу: Дан целочисленный массив из 30 элементов. Элементы массива могут...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vndtta
88 / 65 / 13
Регистрация: 17.10.2011
Сообщений: 226
Завершенные тесты: 1
28.07.2014, 09:47     Найти координаты, лежащие на окружности, равноудаленные на заданный угол друг от друга #2
если тебе нужно повернуть точку Q вокруг точки P

P' = (P) + ((Q)-(P))*[M]

т.е. перенос начала координат в точку P, затем поворот, и перенос начала координат обратно

но перенос можно реализовать в матрице преобразования М - просто в крайнем правом столбце будут не нули

Добавлено через 18 минут
http://ru.wikipedia.org/wiki/%D0%9C%...BE%D0%B4%D0%B0
вот тут подробно - твой вариант трехмерный
Predat0r
0 / 0 / 0
Регистрация: 21.08.2012
Сообщений: 53
28.07.2014, 10:53  [ТС]     Найти координаты, лежащие на окружности, равноудаленные на заданный угол друг от друга #3
Проблема в том что я ограничен знаниями математики 10 класса.
И сложновато понимать.
Возможно меня не так поняли, есть 3 угла Эйлера которые характеризуют наклон поверхности.
Нужно что бы расстояние каждой точки до поверхности было одинаково то есть что бы они были параллельны.

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    const float fRadius = 100.0f;
    const float fAngle = 30.0f;
 
    float fCoords[3]; // тут какие то координаты
 
    fCoords[0] += cos(fAngle) * fRadius;
    fCoords[1] += sin(fAngle) * fRadius;
 
    return 0;
}
Так работает, но нужно изменить координаты получившейся точки относительно углов Эйлера.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2014, 11:10     Найти координаты, лежащие на окружности, равноудаленные на заданный угол друг от друга
Еще ссылки по теме:

Найти номера наиболее и наименее удаленных друг от друга точек - C++
В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1,...

Найти N первых пар простых чисел, которые отличались бы друг от друга на 2 - C++
Не могу понять, почему не делается проверка числа на простоту. #include "StdAfx.h" #include <iostream> #include <cmath> using...

найти две наиболее удаленных друг от друга точки (множество точек задано на плоскости) - C++
Помогите, пожалуйста, написать программу на С++, используя структуру point для хранения координат точки: следует найти две наиболее...

Рекурсия: найти число расстановок N ладей, которые симметричны относительно диагоналей и не бьют друг друга - C++
Вычислить рекурсивно число расстановок N ладей на доске N*N таких, что ладьи симметричны относительно обеих диагоналей и не бьют друг...

Найти максимальное произведение элементов массива, отстоящих друг от друга на расстоянии больше или равном 8 - C++
Задача егэ с4 ,нужно решить с минимальной сложность ,задача такова: у нас дан массив , длинной больше 8 , нужно найти произведение...

Найти заданный угол треугольника, зная две его стороны и периметр - C++
Всем привет. Что то я совсем туплю с этой тригонометрией, хотя школу всего 5 лет назад закончил. В общем даны две стороны треугольника a,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
28.07.2014, 11:10     Найти координаты, лежащие на окружности, равноудаленные на заданный угол друг от друга #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Берете матрицу поворота и множите ее на вектор в начальной системе отсчета. Получаете вектор в системе отсчета заданной углами Эйлера.
R' = MR
Миниатюры
Найти координаты, лежащие на окружности, равноудаленные на заданный угол друг от друга  
Yandex
Объявления
28.07.2014, 11:10     Найти координаты, лежащие на окружности, равноудаленные на заданный угол друг от друга
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru