Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
serjekat
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
#1

нарисовать многоугольник - Программирование Android

18.02.2016, 08:56. Просмотров 347. Ответов 7
Метки нет (Все метки)

Подскажите пожалуйста новичку! Как нарисовать многоугольник напрямую на canvas? Например 8 вершин: начинаем с точки(вершину) (А), потом ставим точку(В) точки А и В соединяются прямой, и т.д и т.п последняя точка замыкается с точкой А. При нажатии на стороны полученной фигуры вводится размер. Затем рассчитать площадь полученной фигуры зная или углы или диагонали. Может кто то сталкивался!? В каком направлении искать, читать, учить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2016, 08:56     нарисовать многоугольник
Посмотрите здесь:

Как можно нарисовать многоугольник - Программирование Android
Доброе время суток. Как можно нарисовать многоугольник на canvas, если есть размеры сторон углы в градусах и размеры диагоналей. Какие...

Нарисовать многоугольник - C#
У меня есть массив из n элментов. 3>n>11. Point points. В points хранятся координаты точек. По этим точкам нужно построить...

Нарисовать многоугольник - ActionScript
подскажите как нарисовать многоугольник программно. (мне конкретно нужен 6 угольник) представление имею что окружность надо поделить на 6 и...

Нарисовать многоугольник - Turbo Pascal
Здравствуйте :) Я не халявщик, просто не хватает опыта. У меня задача: нарисовать некий рисунок(в принципе сам рисунок не важен),...

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
18.02.2016, 10:34     нарисовать многоугольник #2
Нарисовать просто
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Находим все точки
PointF pointA = ...
PointF pointB = ...
...
 
Path path = new Path();
path.moveTo(pointA.x, pointA.y);
path.lineTo(pointB.x, pointB.y);
path.lineTo(pointC.x, pointC.y);
....
path.close();//Закрывает фигуру от последней точки к первой.
 
//Создаем Paint
Paint paint = new Paint();
//Настраиваем его по вкусу
 
canvas.drawPath(path, paint);
Все инициализации нужно вынести из onDraw() т.к. на выделение памяти уходит много времени. Т.е. все точки, path, paint должны быть инициализированы уже в onCreate(), а в onDraw() только задавать им параметры.

С нажатием уже сложнее нужно повесить на вьюшку onTouchListener и в нем при нажатии искать какая грань нажата, возможно даже лучше рисовать в таком случае не Path, а линиями, чтобы их было легко подсветить и т.п.
serjekat
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
18.02.2016, 11:45  [ТС]     нарисовать многоугольник #3
Можно пожалуйста чуть подробнее. Спасибо
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
18.02.2016, 11:48     нарисовать многоугольник #4
serjekat, что именно подробнее?
Pablito
18.02.2016, 11:59
  #5

Не по теме:

очевидно ведь
надо полностью готовый код - самодостаточный метод или кастомный класс и подробная инструкция, а он потом вероятно даже не зайдет в тему или на форум чтобы отписаться

CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
18.02.2016, 12:10     нарисовать многоугольник #6
Цитата Сообщение от serjekat Посмотреть сообщение
Можно пожалуйста чуть подробнее. Спасибо
Использовал ответы отсюда: http://stackoverflow.com/questions/2...filled-polygon.
А для того чтобы нарисовать на канве, почитайте что-нибудь с нуля, например, http://android-er.blogspot.ru/2014/0...canvas-of.html.
serjekat
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
18.02.2016, 12:30  [ТС]     нарисовать многоугольник #7
Готовый код это хорошо, но хочется разобраться во всем этом. Только начал. Смотрю читаю уроки и т.д и т.п.ю Спасибо за ссылки обязательно буду изучать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2016, 11:36     нарисовать многоугольник
Еще ссылки по теме:

Нарисовать в PictureBox правильный многоугольник - C#
Нужно написать программу(виндовс форм) чтобы при выборе из выпадающего списка количества углов и указания длины стороны выводился...

Нарисовать произвольный многоугольник по координатам - Pascal ABC
Помогите в написании кода программы на паскаль АВС.(желательно чтоб рисовался рисунок) Помогите пожалуйста.Очень срочно! ...

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

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


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

Или воспользуйтесь поиском по форуму:
serjekat
0 / 0 / 0
Регистрация: 18.02.2016
Сообщений: 25
21.03.2016, 11:36  [ТС]     нарисовать многоугольник #8
Нарисовать многоугольник получилось, а как каждой вершине задать "Имя" ил номер!?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
@Override
    public boolean onTouchEvent(MotionEvent event) {
 
 
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    if (i == 0) {
                        startX = event.getX();
                        startY = event.getY();
 
                        x[i] = startX;
                        y[k] = startY;
                        path.moveTo(x[i], y[k]);
                        path.addCircle(x[i], y[k], 20, Path.Direction.CCW);
 
                    } else {
                        x[i] = event.getX();
                        y[k] = event.getY();
                        moveY = y[i];
                        moveX = x[k];
 
                        if (startX > moveX - Rad &&
                                startX < moveX + Rad &&
                                startY > moveY - Rad &&
                                startY < moveY + Rad) {
                            path.lineTo(startX, startY);
                            path.close();
                            invalidate();
 
                            return false;
 
                        } else {
                            path.lineTo(x[i], y[k]);
 
                            path.addCircle(x[i], y[k], 15, Path.Direction.CCW);
                        }
                    }
 
                    i++;
                    k++;
            }
 
        }
 
        invalidate();
        return true;
    }
Yandex
Объявления
21.03.2016, 11:36     нарисовать многоугольник
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru