|
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 10
|
|
Сменить систему координат массива точек25.06.2017, 11:48. Показов 2859. Ответов 17
Метки нет (Все метки)
Здравствуйте. Задача следующая.
Дан массив точек arr(1 To 3, 1 To N).Где 1 to 3 система координат xyz. n - количество точек. Причем n всегда > 3. Известно, что массив образует плоскость. Нужно. Изменить массив таким образом, чтобы каждая его точка принадлежала системе координат XY. Для последующего сокращения массива до 1 to 2. (xy) Уважаемые знатоки буду вам признателен за подсказки.
0
|
|
| 25.06.2017, 11:48 | |
|
Ответы с готовыми решениями:
17
Ввод и вывод массива декартовых координат n точек на плоскости Преобразование глобальных координат точки в локальную систему координат, задаваемую четырехугольником
|
|
505 / 465 / 100
Регистрация: 30.01.2017
Сообщений: 1,371
|
|
| 25.06.2017, 13:05 | |
|
Одну из точек принимаете за начало координат в новой системе (кстати, не надо обозначать новые координаты теми же буквами, что и старые - коллизия обозначений недопустима: пусть новые координаты будут, скажем,
0
|
|
|
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 10
|
|
| 25.06.2017, 16:32 [ТС] | |
|
А можно на примере массива из трех точек уточнить
a=(50,10,0) b=(70,40,-20) c=(100,-30,10) Я просто пробовал точке присвоить a (0,0), затем нашел отрезок ab=41,23..затем отрезок ac=64,81.. точку b переориентировал как b=(41.23,0) осталось найти с по 2 точкам и двум отрезкам , но опять же точка с имеет 2 решения. Запутался.
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 25.06.2017, 20:56 | |
|
Из трех точек A,B,C сделать два вектора A0 и A1 с началом в точке A.
Кросс продукт A0 и A1 даст вектор A2(как нормаль к плоскости точек). Кросс продукт A2 и A0 даст вектор A3. Сделать уравнения двух прямых по двум точкам. Прямая0=Точка A и вектор A0 будет ось X. Прямая1=Точка A и вектор A3 будет ось Y. Найти длину перпендикуляра из точек массива на Прямая0 это будет X координата. Найти длину перпендикуляра из точек массива на Прямая1 это будет Y координата. Длинна перпендикуляра из точки до прямой по двум точкам в 3д вроде эта: Подобие math.h для геометрии Добавлено через 27 секунд Из трех точек A,B,C сделать два вектора A0 и A1 с началом в точке A. Кросс продукт A0 и A1 даст вектор A2(как нормаль к плоскости точек). Кросс продукт A2 и A0 даст вектор A3. Сделать уравнения двух прямых по двум точкам. Прямая0=Точка A и вектор A0 будет ось X. Прямая1=Точка A и вектор A3 будет ось Y. Найти длину перпендикуляра из точек массива на Прямая0 это будет X координата. Найти длину перпендикуляра из точек массива на Прямая1 это будет Y координата. Длинна перпендикуляра из точки до прямой по двум точкам в 3д вроде эта: Подобие math.h для геометрии
1
|
|
|
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 10
|
|
| 27.06.2017, 23:47 [ТС] | |
|
Да.. Туплю, потею ..но не понимаю . Помогите люди добрые.
0
|
|
|
|
||||||
| 28.06.2017, 00:13 | ||||||
Сообщение было отмечено Вячеслав81 как решение
Решение
Используйте первые три точки для определения системы координат. Как вам и советовали, вектора A3,A1,A2 будут новым базисом. Базис у вас получился ортогональный. Его еще нужно нормировать, чтобы матрицу перехода было легко обратить путем транспонирования. Эта обратная матрица умножается на вектор со старыми координатами и получается вектор с новыми координатами. У первого вектора новые координаты будут нулевыми. После пересчета третья координата у каждой точки должна быть очень близка к нулю, если, конечно, точки расположены в одной плоскости. У вас бейсик был? Вот на VB скрипте посмотрите что получается.
1
|
||||||
|
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 10
|
|
| 28.06.2017, 01:21 [ТС] | |
|
Palva, вы прям в точку попали. Ваш код пока не запускал. Завтра посмотрю. Единственное чем я владею немножко -это VBA. А задача эта взята для решения своих заморочек по анализу и проектированию в API SolidWorks. По образованию я гуманитарий , по этому и тяжело решать. Просто мы это не проходили в школе и ВУЗе. В любом случае всем отвечавшим огромнейшее спасибо.
0
|
|
|
1728 / 1020 / 181
Регистрация: 03.06.2012
Сообщений: 1,220
|
||
| 28.06.2017, 13:23 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 10
|
|
| 29.06.2017, 01:01 [ТС] | |
|
То что массив образует плоскость - 100%. Я данные снимаю из модели. Про оптимальное расположение плоскости не совсем понял. Задача состоит избавиться от любой их 3 возможных координат... Желательно со стартовой точкой (0,0) но не обязательно.
Никак не могу найти время посидеть с задачкой, днем работа , вечером дела..Отпишу по результату.
0
|
|
|
1728 / 1020 / 181
Регистрация: 03.06.2012
Сообщений: 1,220
|
|
| 29.06.2017, 01:12 | |
|
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 29.06.2017, 18:48 | ||
|
Мне кажется скорей всего не нужно ничего убирать. У вас будут 3д координаты которым Z нужно будет усреднить в группе т.к. это замер то они все с ошибкой всегда. У вас Z будет одинаковая для всех точек плоскости это и “уберет” одну из координат. Группировка точек вам ничего не даст т.к. у вас всегда начало координат группы из плоскости задает одна точка из замера группы. Для модели все координаты точек должны быть в глобальных координатах. Вот ваша высота зонда замера это и есть Z координата глобальная.
0
|
||
|
1728 / 1020 / 181
Регистрация: 03.06.2012
Сообщений: 1,220
|
|
| 29.06.2017, 19:11 | |
|
Excalibur921, задача может состоять в уменьшении размерности данных (например, методом главных компонент). Наверняка сказать трудно, т.к. ТС неточно формулирует задачу.
0
|
|
|
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 10
|
|
| 02.07.2017, 22:17 [ТС] | |
|
Товарищи, у меня для двумерных координат есть много собственных разработок, в виде кода VBA. Переделывать ничего не хочу. Поэтому и избавляюсь от z. В основном все это нужно для вывода в печать определенных плоскостей тел SW. Сейчас мне необходимо преобразовать координаты 2 мерного массива таким образом, чтобы избавиться от отрицательных чисел. Но это я попробую сам реализовать. В 2 мерке как то проще соображаю.
Выражаю огромную благодарность за решение данной задачи. Сам я бы долго такое делал. Еще раз огромное человеческое спасибо.
0
|
|
|
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 10
|
|
| 02.07.2017, 22:17 [ТС] | |
|
Товарищи, у меня для двумерных координат есть много собственных разработок, в виде кода VBA. Переделывать ничего не хочу. Поэтому и избавляюсь от z. В основном все это нужно для вывода в печать определенных плоскостей тел SW. Сейчас мне необходимо преобразовать координаты 2 мерного массива таким образом, чтобы избавиться от отрицательных чисел. Но это я попробую сам реализовать. В 2 мерке как то проще соображаю.
Выражаю огромную благодарность за решение данной задачи. Сам я бы долго такое делал. Еще раз огромное человеческое спасибо.
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|||
| 02.07.2017, 22:43 | |||
|
Это математика за 1 класс =).
0
|
|||
|
0 / 0 / 0
Регистрация: 10.04.2017
Сообщений: 10
|
||
| 02.07.2017, 23:20 [ТС] | ||
|
В этих алгоритмах по сути нет ничего сложного. Просто кода много по объему. Была потрачена мною уйма времени на написание.
0
|
||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 02.07.2017, 23:44 | |
|
Множите массив векторов на матрицу поворота…чтобы это не значило =))
Тоже что: “Координаты (x',y') в результате поворота точки (x, y) имеют вид:” Матрица поворота в 2д. Знаки зависят от по часовой или против. Углы в радианах. https://ru.wikipedia.org/wiki/Матрица_поворота
0
|
|
| 02.07.2017, 23:44 | |
|
Помогаю со студенческими работами здесь
18
Ввести с клавиатуры последовательность из 20 координат точек (x,y) и определить максимальную из ординат точек Известны координаты двух точек. Найти расстояния от начала координат до этих точек.
Среди точек массива, лежащих в некоторой четверти, найти точку, наиболее близкую/удаленную от начала координат Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|