0 / 0 / 0
Регистрация: 12.01.2019
Сообщений: 79
|
|
1 | |
Рисование концентрической фигуры - внутри другой фигуры10.07.2019, 14:47. Показов 2137. Ответов 7
Метки нет Все метки)
(
Здравствуйте.
Подскажите с решением. Суть такая. На листе есть замкнутая ломаная линия. Как нарисовать концентрическую фигуру - ориентируясь на эту основную фигуру ? Это значит, что макрос должен как-то изменить координаты что новая фигура - будет вписанной, но с каким-то небольшим отступом внутрь. Это сложно словами объяснить, в файле - нужную фигуру - я обозначил пунктиром. Алгоритм такой: По координатам исходной полилинии 1. Вычисляем уравнение прямой с учётом направления обхода для каждой последовательной пары. 2. Вычисляем параллельные прямые, смещённые от данных внутрь полилинии на заданную величину. 3. Находим последовательно точки пересечения этих смещённых прямых. 4. По этим точкам строим ту самую пунктирную полилинию. Как это сделать макросом ?
0
|
|
10.07.2019, 14:47 | |
Ответы с готовыми решениями:
7
Программа вычисления местонахождения точки относительно фигуры (лежит ли точка внутри, на контуре или вне фигуры) рисование фигуры |
1802 / 1127 / 343
Регистрация: 11.07.2014
Сообщений: 3,977
|
|
10.07.2019, 15:14 | 2 |
Glass4217, думаю, что ваш алгоритм незаслуженно громоздок. Каждая фигура имеет параметры прямоугольника, в который она заключена: Left, Width, Top, Height. Копируете исходную полилинию, пропорционально уменьшаете Width и Height. Left и Top увеличиваете на половину разностей Width и Height в исходной и вторичной фигурах. Сможете сами осилить, не знаю уровень вашей квалификации в ВБА?
1
|
0 / 0 / 0
Регистрация: 12.01.2019
Сообщений: 79
|
|
10.07.2019, 15:27 [ТС] | 3 |
Burk, спасибо за совет.
А как этот более совершенный алгоритм представить в виде макроса ?
0
|
1802 / 1127 / 343
Регистрация: 11.07.2014
Сообщений: 3,977
|
|
10.07.2019, 16:16 | 4 |
Glass4217, я малость поспешил с советами, на выпуклом многоугольнике эта методика пройдет, а вот в вашем случае проблема с вогнутым внутрь участком, он у внутренней фигуры должен быть шире исходной! Подумаю ещё, хотелось как попроще. Алгоритм совершенно простой и я его написал (10 строк кода), но раз у вас возникли такие вопросы значит вы имеете очень смутное представление о макросах. Буду думать. Незаслуженную мной единичку уберите.
0
|
SoftIce
|
10.07.2019, 16:25
#5
|
0
|
1802 / 1127 / 343
Регистрация: 11.07.2014
Сообщений: 3,977
|
|
10.07.2019, 17:32 | 6 |
SoftIce, так он что под двумя никами выступает? В предыдущей, похожей теме был другой ник, правда мне они тоже показались похожими и единичку мне выставил там Glass4217. Тогда уровень ясен. Но постараюсь помочь. Правда, Pashulka в таких темах больше меня шарит, я редко с этим сталкиваюсь, может он что подскажет.
0
|
6076 / 1320 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
|
||||||
11.07.2019, 01:42 | 7 | |||||
![]() РешениеЗдравствуйте,Темы, связанные с геометрией - мои любимые. Вот что у меня получилось: Программа рисования контура полилинии
Если будут вопросы, обращайтесь. С уважением, Аксима.
3
|
0 / 0 / 0
Регистрация: 12.01.2019
Сообщений: 79
|
|
11.07.2019, 10:34 [ТС] | 8 |
Аксима, спасибо большое.
0
|
11.07.2019, 10:34 | |
Помогаю со студенческими работами здесь
8
Рисование фигуры в PaintBox Рисование объёмной фигуры Рисование фигуры на кнопке Рисование фигуры в OpenGL Рисование геометрической фигуры С(Си)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |