Вычислить центр и радиус круга на треке
-
- assistant
- Сообщения: 111
- Зарегистрирован: 24 апр 2017, 22:27
- Версия LabVIEW: 2016
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Вычислить центр и радиус круга на треке
Доброе время суток ,уважаемые форумчане!
Столкнулся с необходимостью определения круга на треке ,для своей лаборатории.
На картинке ,которую прилагаю , виден трек в виде петли, вопрос заключается как автоматически определить
его параметры - центр(x,y) и радиус. Трек нарисован на графике XY, точно соответствует пройденным расстояниям и углам.
Большая просьба знающим людям помочь, может кто делал подобную работу или хотя бы натолкнуть на мысль.
Заранее большое спасибо)
Столкнулся с необходимостью определения круга на треке ,для своей лаборатории.
На картинке ,которую прилагаю , виден трек в виде петли, вопрос заключается как автоматически определить
его параметры - центр(x,y) и радиус. Трек нарисован на графике XY, точно соответствует пройденным расстояниям и углам.
Большая просьба знающим людям помочь, может кто делал подобную работу или хотя бы натолкнуть на мысль.
Заранее большое спасибо)
- zxc_pavel
- adviser
- Сообщения: 242
- Зарегистрирован: 02 июн 2016, 12:07
- Версия LabVIEW: 15
- Благодарил (а): 9 раз
- Поблагодарили: 23 раза
- Контактная информация:
Re: Вычислить центр и радиус круга на треке
Я бы попробовал "стрелять" из каждой точки лучами на 360 градусов.
1) Если все лучи пересекли кривую, значит ты внутри фигуры
2) Из этих точек найти наиболее равноудаленную от мест пересечения
1) Если все лучи пересекли кривую, значит ты внутри фигуры
2) Из этих точек найти наиболее равноудаленную от мест пересечения
-
- assistant
- Сообщения: 111
- Зарегистрирован: 24 апр 2017, 22:27
- Версия LabVIEW: 2016
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Вычислить центр и радиус круга на треке
Не совсем понял идею, стрелять от куда? Как Вы это представляете? Если можно ,то нарисуйте ,да и круг будет не идеален на треке ,это тоже нужно учесть.
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Вычислить центр и радиус круга на треке
Вам сначала необходимо отделить "круг" от всего остального, это можно сделать проссчитав место пересечения.
Потом вычислить цент круга, это получится относительно, т.к. круг не совсем круг , но он будет совпадать с "центром масс" координат точек входящих в окружность.
Потом от этого центра считаете расстояние до точек окружности ну и берете, что нужно: max, min или среднее значение.
Потом вычислить цент круга, это получится относительно, т.к. круг не совсем круг , но он будет совпадать с "центром масс" координат точек входящих в окружность.
Потом от этого центра считаете расстояние до точек окружности ну и берете, что нужно: max, min или среднее значение.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- assistant
- Сообщения: 111
- Зарегистрирован: 24 апр 2017, 22:27
- Версия LabVIEW: 2016
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Вычислить центр и радиус круга на треке
Я думал и о таком сценарии, но эта идея не та, которую Вы озвучивали до этого. Если это делать не вручную, то то точка пересечения будет два или более одинаковых элемента массива, я правильно понял вашу идею?
А далее среднее X & Y будет центром,так?
А далее среднее X & Y будет центром,так?
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Вычислить центр и радиус круга на треке
Не факт, что точки будут одинаковыми. У вас же не непрерывная кривая, я набор точек.
Если есть возможность, выложите массив точек, чтобы поиграться, мне лично самостоятельно их вбивать лень :)
Но я бы попробовал так: локализовать Х можно так: найти отрезок (Xi..Xi+1) на котором располагается 5-6 точек.
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Вычислить центр и радиус круга на треке
Судя по описанию:
У вас не координаты точек, а направление (угол) и расстояние. Но это особо не меняет картины, даже имея координаты точек, можно представить трек как ломаную линию состоящую из отрезков.
Вы же можете каждый с каждым отрезки проверить на пересечение?
Если отрезки пересекаются, то берем внутренние точки (замыкаем их), а внешние лежат за пределами круга.
Я думал именно этот этап не вызовет никаких трудностей.
Что касается центра, то можно упростить и после того как Вы оставили только точки принадлежащие окружности.
Взять из них min & max и вычислить среднее, соответственно по X и Y, это примерно центр и будет.
С радиусом я думаю понятно.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- assistant
- Сообщения: 111
- Зарегистрирован: 24 апр 2017, 22:27
- Версия LabVIEW: 2016
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Вычислить центр и радиус круга на треке
Спасибо, так ,наверно, стоит и сделать, радиус описывающей окружности у меня так и считается, сейчас описывает весь трек, когда будет окружность или что-то ей подобное, то центр и его радиус автоматом посчитается ,Вы абсолютно правы по поводу вычислений трека, азимут на отрезке и расстояние. Единственное что бы я еще хотел попросить помочь с удалением отрезков средствами labview, так я мыслю на Си могу сделать это не оптимально. Заранее благодарен ,за помощь.
Да и азимут, и расстояние я перевожу в координаты x,y, так что у меня массив точек с координатами.
------------------
Это форум, а не чат.
Нет смысла писать несколько сообщений подряд, у Вас есть доступ к редактированию своих сообщений.
IvanLis
Да и азимут, и расстояние я перевожу в координаты x,y, так что у меня массив точек с координатами.
------------------
Это форум, а не чат.
Нет смысла писать несколько сообщений подряд, у Вас есть доступ к редактированию своих сообщений.
IvanLis
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Вычислить центр и радиус круга на треке
Есть первый элемент окружности и количество -> Array subset
-
- assistant
- Сообщения: 111
- Зарегистрирован: 24 апр 2017, 22:27
- Версия LabVIEW: 2016
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Вычислить центр и радиус круга на треке
Да ,но сложность заключается в том, что это пересечение прямых. В общем выкладываю vi - прототип с треками.
- Вложения
-
- Untitled 1.vi
- (35.96 КБ) 94 скачивания
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Вычислить центр и радиус круга на треке
Дальше я надеюсь сложностей не будет.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- assistant
- Сообщения: 111
- Зарегистрирован: 24 апр 2017, 22:27
- Версия LabVIEW: 2016
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Вычислить центр и радиус круга на треке
Спасибо огромное)))Какие могут быть дальше сложности ,ведь самое гениальное Вы сделали!
Я думал можно было какими-то методами LV это сделать, но был наверно прав, что такие задачи проще решать на Ci.
Еще раз огромное спасибо, очень приятно, что есть такие толковые люди)
Я думал можно было какими-то методами LV это сделать, но был наверно прав, что такие задачи проще решать на Ci.
Еще раз огромное спасибо, очень приятно, что есть такие толковые люди)