Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25

Как можно нарисовать многоугольник

15.11.2016, 13:15. Показов 2543. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток.
Как можно нарисовать многоугольник на canvas, если есть размеры сторон углы в градусах и размеры диагоналей.
Какие есть идеи!?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2016, 13:15
Ответы с готовыми решениями:

нарисовать многоугольник
Подскажите пожалуйста новичку! Как нарисовать многоугольник напрямую на canvas? Например 8 вершин: начинаем с точки(вершину) (А), потом...

Хочу нарисовать многоугольник с некоторыми координатами углов. Как?! можно и не правильный
Хочу нарисовать многоугольник с некоторыми координатами углов. Как?! можно и неправильный

Как нарисовать многоугольник?
Хочу нарисовать многоугольник с некоторыми координатами углов. Как?!

39
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
15.11.2016, 13:30
serjekat, см Canvas метод drawLine или drawPath или вам нужен аналитический расчет?
0
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
15.11.2016, 13:49  [ТС]
Спасибо за ответ, но что бы воспользоваться этими методами нужны координаты. Как можно их получить имея размеры сторон углы диагонали ну и координаты первого угла!?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
15.11.2016, 13:53
https://www.cyberforum.ru/geometry/
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
15.11.2016, 14:12
serjekat, простите, неужели в школах преподают андроид раньше чем геометрию?
0
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
15.11.2016, 15:25  [ТС]
Есть у меня нарисованный многоугольник с произвольными координатами с n - вершинами, затем пользователь вводит размеры всех сторон и диагоналей, нужно что бы многоугольник нарисовало согласно введенным размером

Добавлено через 9 минут
Углы высчитать я могу (теорема sin,cos), координата следующего угла Xn=Xn-1+(d*cosA);Yn=Yn-1+(d*sinA); где d- расстояние от угла (n-1) до A угол между сторонами. Но что то тут не то!!!
0
 Аватар для OlegJV
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
15.11.2016, 15:52
Цитата Сообщение от serjekat Посмотреть сообщение
затем пользователь вводит размеры всех сторон
То есть пользователь размеры сам посчитает? Тогда в чем проблема?
0
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
15.11.2016, 15:57  [ТС]
Правильно высчитать координаты углов, для правильной от рисовки...
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
15.11.2016, 16:02
serjekat, минимум что вызывает опасения - все ли данные введенные пользователем будут корректными - мне почему то кажется что задавая произвольные размеры сторон и диагоналей я могу создать ну очень необычный многоугольник который вообще будет просто набором палок которые нельзя соединить
0
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
15.11.2016, 18:01  [ТС]
исходим из того что данные водятся правильные
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
15.11.2016, 18:35
serjekat, нарисуйте пример обозначив на рисунке вводимые величины
0
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
15.11.2016, 18:51  [ТС]
К примеру так
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.11.2016, 19:32
В чём проблема? Берёшь любую точку, ставишь её в (0,0), проводишь первую линию вдоль 0Х, на заданную длину, будет (180,0), потом проводишь линию от неё под заданным углом, гипотенуза и угол известны, считаешь катеты (прилежащий - гипотенуза на косинус, это X, противолежащий - гипотенуза на синус, это Y), получаешь координаты. Геометрия 6 класс, надеюсь, не напутал ничего.

Добавлено через 2 минуты
Последняя линия должна соответствовать двум условиям по углам, свой угол должен быть и угол между ней и начальной линией. Хотя если вводится всё правильно, вряд ли конечно, то должно попасть.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
15.11.2016, 20:08
serjekat, не нашёл системы в прокладке диагоналей - она есть? Где к примеру EB или DB?
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.11.2016, 20:17
vxg, я так понял это не диагонали, а он так треугольники отметил, чтобы удобно было углы видеть и син/кос считать.
0
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
16.11.2016, 11:38  [ТС]
это диагонали и в тоже время треангуляция многоугольника (разбит многоугольник на треугольники)
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
16.11.2016, 11:42
serjekat, лично для меня это так и осталось адовым кошмаром. если вы задаете диагонали я НЕ ПРЕДСТАВЛЯЮ как пользователь должен догадаться что из вершины D диагоналей не будет и что помешает ему ввести значение ЛЮБОЙ диагонали хоть на миллиметр отличное от того которое вы нарисовали на рисунке?
0
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
16.11.2016, 12:07  [ТС]
диагоналей можно вводить хоть сколько, триангуляция берет только нужные (остальные остаются не важные) размеры в см и конечно будет погрешность это тоже не важно. Эти все моменты учтены и уже реализованы, нужно именно метод что бы чертеж перерисовало в зависимости от размеров.

ExFau$t да Вы правильно говорите, но вот программно не получается сделать все рисует не в том направлении...
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,460
16.11.2016, 12:17
serjekat, то что я напишу будет малоинформативно, но другие просто этого не скажут: алгоритм получения исходных данных и их использования из предоставленной информации непонятен. какие то диагонали отбрасываются? отлично. как система узнает какие из данных можно просто слить в унитаз? точность не критична? окай. давайте я введу диагональ BF равной 1 см - вы никогда не построите с такой диагональю и такими сторонами AF и FE фигуру существующую в нашем мире
0
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
16.11.2016, 12:39  [ТС]
не нужные диагонали отбрасываются после триангуляции, а диагонали проверяются на длину с помощью возможности существования треугольника к примеру треугольника AEF . если вводится не коректные данные то пользователь получает уведомлении о том что неправильные размеры и в этом случае перерисовка и не нужна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2016, 12:39
Помогаю со студенческими работами здесь

Как нарисовать многоугольник
Не могу понять как нарисовать многоугольник. то есть я знаю что надо использовать Graphics я не могу понять как заполнить структуру PointF ?

Как нарисовать правильный многоугольник?
Добрый день. Вроде поню была функция отрисовки правильного многоугольника, но не могу найти (могу ошибаться). Конечно не проблема...

Как нарисовать многоугольник командой DrawPolygon()?
Привет всем. Как мне нарисовать многоугольник в приложении ? Точки не должны задаваться заранее, а их кол-во и координаты(либо рандомно)...

На графике не выводит все точки, в чем ошибки? Как нарисовать по этим точкам многоугольник?
public void RandomSolve() { int i = 0; _X = new double; double nonRundomSolve =...

Нарисовать многоугольник
здравствуйте! Мне надо построить такой многоугольник, а я наугад чертил линии. помогите пожалуйста построить многоугольник. И еще...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru