Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Рисование линии с огибанием препятствия - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Рисование линии с огибанием препятствия (Макросы/Sub)
Рисование линии с огибанием препятствия
Snegovik Дата: Среда, 10.10.2018, 16:07 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый вечер.

Столкнулся с проблемой рисования линии между двумя фигурами, с огибанием этой линией препятствия.
Если между двумя фигурами - свободное пространство - то рисуется прямая линия.
А если между ними - есть какая-то другая фигура, то рисуется полилиния из трех точек - так чтобы обогнуть препятствие.

Как такое макросом реализовать ?
(в настоящий момент макрос - только прямую линию умеет рисовать)
К сообщению приложен файл: 111.xls(59.5 Kb)
 
Ответить
СообщениеДобрый вечер.

Столкнулся с проблемой рисования линии между двумя фигурами, с огибанием этой линией препятствия.
Если между двумя фигурами - свободное пространство - то рисуется прямая линия.
А если между ними - есть какая-то другая фигура, то рисуется полилиния из трех точек - так чтобы обогнуть препятствие.

Как такое макросом реализовать ?
(в настоящий момент макрос - только прямую линию умеет рисовать)

Автор - Snegovik
Дата добавления - 10.10.2018 в 16:07
Roman777 Дата: Среда, 10.10.2018, 17:17 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 880
Репутация: 115 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Snegovik, Задача нетривиальная, мне кажется =). Вы рассматриваете только 1 случай, когда между двумя фигурами может быть только 1 фигура (тоесть всего на поле максимум 3 фигуры)?


Много чего не знаю!!!!
 
Ответить
СообщениеSnegovik, Задача нетривиальная, мне кажется =). Вы рассматриваете только 1 случай, когда между двумя фигурами может быть только 1 фигура (тоесть всего на поле максимум 3 фигуры)?

Автор - Roman777
Дата добавления - 10.10.2018 в 17:17
Snegovik Дата: Четверг, 11.10.2018, 05:19 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Roman777, имеется ввиду, что на пути - между двумя фигурами - может быть размещена только одна фигура, которую и нужно обогнуть этой линии.
Фигур на листе может быть сколько угодно. Но между двумя целевыми фигурами - может быть только одна фигура.
 
Ответить
СообщениеRoman777, имеется ввиду, что на пути - между двумя фигурами - может быть размещена только одна фигура, которую и нужно обогнуть этой линии.
Фигур на листе может быть сколько угодно. Но между двумя целевыми фигурами - может быть только одна фигура.

Автор - Snegovik
Дата добавления - 11.10.2018 в 05:19
doober Дата: Четверг, 11.10.2018, 11:29 | Сообщение № 4
Группа: Друзья
Ранг: Обитатель
Сообщений: 496
Репутация: 229 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте
Как такое макросом реализовать ?

Получаете массив координат центров овалов и их радиусов.
Перебор в цикле
Проверяете, не пересекает ли прямая окружность.
Если не пересекла ни одного раза, значит прямая, иначе поллиния.


 
Ответить
СообщениеЗдравствуйте
Как такое макросом реализовать ?

Получаете массив координат центров овалов и их радиусов.
Перебор в цикле
Проверяете, не пересекает ли прямая окружность.
Если не пересекла ни одного раза, значит прямая, иначе поллиния.

Автор - doober
Дата добавления - 11.10.2018 в 11:29
Snegovik Дата: Пятница, 12.10.2018, 11:23 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Так как же выполнить макросом эту операцию ?
 
Ответить
СообщениеТак как же выполнить макросом эту операцию ?

Автор - Snegovik
Дата добавления - 12.10.2018 в 11:23
doober Дата: Пятница, 12.10.2018, 17:58 | Сообщение № 6
Группа: Друзья
Ранг: Обитатель
Сообщений: 496
Репутация: 229 ±
Замечаний: 0% ±

Excel 2007
В чем трудность?
В тригонометрии или получение массива координат.


 
Ответить
СообщениеВ чем трудность?
В тригонометрии или получение массива координат.

Автор - doober
Дата добавления - 12.10.2018 в 17:58
Snegovik Дата: Суббота, 13.10.2018, 18:33 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
В чем трудность?
В тригонометрии или получение массива координат.


Наверное для меня трудность - в массиве координат.
 
Ответить
Сообщение
В чем трудность?
В тригонометрии или получение массива координат.


Наверное для меня трудность - в массиве координат.

Автор - Snegovik
Дата добавления - 13.10.2018 в 18:33
doober Дата: Воскресенье, 14.10.2018, 00:19 | Сообщение № 8
Группа: Друзья
Ранг: Обитатель
Сообщений: 496
Репутация: 229 ±
Замечаний: 0% ±

Excel 2007
Надеюсь, разберетесь и примените под себя
К сообщению приложен файл: _111.xls(86.5 Kb)


 
Ответить
СообщениеНадеюсь, разберетесь и примените под себя

Автор - doober
Дата добавления - 14.10.2018 в 00:19
Snegovik Дата: Воскресенье, 14.10.2018, 07:22 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
doober, все в точности то же самое.
Проводится та же прямая линия, не реагирующая на препятствие.
 
Ответить
Сообщениеdoober, все в точности то же самое.
Проводится та же прямая линия, не реагирующая на препятствие.

Автор - Snegovik
Дата добавления - 14.10.2018 в 07:22
doober Дата: Воскресенье, 14.10.2018, 10:20 | Сообщение № 10
Группа: Друзья
Ранг: Обитатель
Сообщений: 496
Репутация: 229 ±
Замечаний: 0% ±

Excel 2007
Вы не там смотрите.
Я показал, как получить массив данных и проверить на пересечение прямой с окружностями.
Если есть пересечение, то функция Intersectcircle(Line, Circl) As Boolean вернет True.Вы должны применить ее сами в
процедуре Sub Багетнаярамка5_Щелкнуть() на свое усмотрение.


 
Ответить
СообщениеВы не там смотрите.
Я показал, как получить массив данных и проверить на пересечение прямой с окружностями.
Если есть пересечение, то функция Intersectcircle(Line, Circl) As Boolean вернет True.Вы должны применить ее сами в
процедуре Sub Багетнаярамка5_Щелкнуть() на свое усмотрение.

Автор - doober
Дата добавления - 14.10.2018 в 10:20
Roman777 Дата: Воскресенье, 14.10.2018, 11:50 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 880
Репутация: 115 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Snegovik, Вот из интереса сделал некое подобие того, что, вродебы Вам нужно. Но есть некоторые упрощения, которые я сделал для "удешевления":
1) В качестве формы фигуры принимаю описывающий её прямоугольник (но на деле можно подставить координаты всех отрезков, образующих фигуру)
2) Линия отрисовывается от центров исследуемых фигур (но добавить отрисовку от граничных точек фигур, лежащих на этом отрезке, не такая уж и большая проблема)
2) Следует из 1-го. Подходит для описывания фигуры отрезками (полилиниями), если это сплайны, нужно работать уже с уравнениями самих фигур. Для этого нужно понимать по какому закону отрисованы все сплайны.
3) Обходная линия нарисована полилинией, а не сплайном, для рисования сплайнами нужно знать уравнение сплайна в экселе (я этого не знаю)
4) Если будет много фигур, то обходная линия может зацепить какую-то 4ю фигуру, которая не находится на пересечении двух исследуемых.

Для поиска точек пересечения лучше, всё-таки, использовать векторную алгебру. В ней нет недостатков, связанных с решением уравнений, описывающих прямые (или другие формы).
К сообщению приложен файл: 111_.xls(80.0 Kb)


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Воскресенье, 14.10.2018, 11:53
 
Ответить
СообщениеSnegovik, Вот из интереса сделал некое подобие того, что, вродебы Вам нужно. Но есть некоторые упрощения, которые я сделал для "удешевления":
1) В качестве формы фигуры принимаю описывающий её прямоугольник (но на деле можно подставить координаты всех отрезков, образующих фигуру)
2) Линия отрисовывается от центров исследуемых фигур (но добавить отрисовку от граничных точек фигур, лежащих на этом отрезке, не такая уж и большая проблема)
2) Следует из 1-го. Подходит для описывания фигуры отрезками (полилиниями), если это сплайны, нужно работать уже с уравнениями самих фигур. Для этого нужно понимать по какому закону отрисованы все сплайны.
3) Обходная линия нарисована полилинией, а не сплайном, для рисования сплайнами нужно знать уравнение сплайна в экселе (я этого не знаю)
4) Если будет много фигур, то обходная линия может зацепить какую-то 4ю фигуру, которая не находится на пересечении двух исследуемых.

Для поиска точек пересечения лучше, всё-таки, использовать векторную алгебру. В ней нет недостатков, связанных с решением уравнений, описывающих прямые (или другие формы).

Автор - Roman777
Дата добавления - 14.10.2018 в 11:50
Snegovik Дата: Понедельник, 15.10.2018, 11:23 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Roman777, все нормально.
Спасибо за ответ.
 
Ответить
СообщениеRoman777, все нормально.
Спасибо за ответ.

Автор - Snegovik
Дата добавления - 15.10.2018 в 11:23
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Рисование линии с огибанием препятствия (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!