Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 2
Регистрация: 07.03.2012
Сообщений: 77

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

12.10.2014, 15:49. Показов 2064. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите как нарисовать многоугольник программно. (мне конкретно нужен 6 угольник) представление имею что окружность надо поделить на 6 и соединить точки а как не могу понять.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2014, 15:49
Ответы с готовыми решениями:

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

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

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

11
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
12.10.2014, 20:09
А у Вас не получается почему? Вы не знаете как в as3 рисовать произвольные фигуры или Вы не знаете геометрию на уровне пятого класса?
И какой именно шестиугольник Вам нужен?

Добавлено через 11 минут
Есть очень простой вариант ( он для тех, кто не хочет учить геометрию и став "прогером" ему придется только хоронить flash так как покорить его не получилось ) при помощи методов lineTo moveTo класса Graphicsююю
Создаете экземпляр потомка DisplayObject и и переносите перо в его верхней центр и это будет первой точкой.
Теперь крутите Ваш объект на 60 градусов и задаете точку опять в верху в центре. И получается, что предыдущая точка и текущая, образуют прямую. И если так крутануть шесть раз, то получится - шестиугольник.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
12.10.2014, 20:30
ActionScript 3
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
49
50
51
52
53
package  
{
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.geom.Point;
    
    /**
     * ...
     * @author TanaTiX
     */
    public class Main extends Sprite 
    {
        private static const SIDES:uint = 6;//кол-во сторон
        private static const CENTER:Point = new Point(100, 100);//центр фигуры
        private static const RADIUS:uint = 50;//радиус
        
        public function Main() 
        {
            init();
        }
        
        private function init():void 
        {
            //координаты выведены в отдельные переменные для удобства
            var cx:Number = CENTER.x;
            var cy:Number = CENTER.y;
            //
            var px:Number;
            var py:Number;
            //
            var dirx:Number;
            var diry:Number;
            var ang:Number;
            //
            var sh:Shape = new Shape();
            sh.graphics.lineStyle(1);
            sh.graphics.moveTo(cx + RADIUS, cy);//"выходим на исходную"
            for (var i:int = 0; i < SIDES; i++) 
            {
                ang = i * 2 / SIDES * Math.PI;//360/180 сокращено до 2х, угол представлен в радианах
                dirx = Math.cos(ang);
                diry = Math.sin(ang);
                px = RADIUS * dirx;
                py = RADIUS * diry;
                sh.graphics.lineTo(cx + px, cy + py);
            }
            sh.graphics.lineTo(cx + RADIUS, cy);//закрываем фигуру
            addChild(sh);
        }
        
    }
 
}
1
1 / 1 / 2
Регистрация: 07.03.2012
Сообщений: 77
12.10.2014, 21:21  [ТС]
а еще один вопрос почему я его помещаю в другой спрайт, он(многоугольник) не достает до границ но спрайт увеличивает. в размерах

Добавлено через 6 минут
Извините это происходило при повороте.

Добавлено через 3 минуты
не пойму почему когда я его поворачиваю на 30 градусов он вылазиет за границы хотя визуально этого не видно
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
12.10.2014, 21:29
Цитата Сообщение от maxisglad Посмотреть сообщение
когда я его поворачиваю на 30 градусов он вылазиет за границы хотя визуально этого не видно
Немного странное утверждение. Если вы этого не наблюдаете, то почему считаете, что он "вылазиет"?
0
1 / 1 / 2
Регистрация: 07.03.2012
Сообщений: 77
12.10.2014, 21:35  [ТС]
изменения размера спрайта на котором помещен многоугольник заметны
0
1 / 1 / 2
Регистрация: 07.03.2012
Сообщений: 77
12.10.2014, 21:38  [ТС]
вот изображение
Изображения
  
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
12.10.2014, 21:42
Если в Вас засунуть слона Вы останетесь таким же или примете размеры слона?
0
1 / 1 / 2
Регистрация: 07.03.2012
Сообщений: 77
12.10.2014, 21:46  [ТС]
да причем тут это я понимаю что его размер стал больше и край спрайта вылезает за рамки я спрашиваю как повернуть фигуру безболезненно, или её изначально надо рисовать в повернутом состоянии.
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
12.10.2014, 21:56
Цитата Сообщение от maxisglad Посмотреть сообщение
а причем тут это я понимаю что его размер
Не понимает раз спрашиваете, вот я объяснил на примере слона. Контайнер всегда имеет размер своего содержимого.
Но чтобы это обойти, Вам нужно высчитать максимальный размер вложенности и отрисовать контайнер с учетом этого максимального размера.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
12.10.2014, 23:04
bus, думаю, ТС-у хватит использования матриц (Matrix)
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
12.10.2014, 23:48
TanaTiX, Вы меня, думаю, как и ТС, заинтересовали. Я не могу представить как матрица поможет.
Вообще я редко сталкиваюсь с рисованием graphics и сейчас даже решил попробовать воспроизвести проблему,
но сразу увидел то, про что уже забыл. Если не перерисовывать контейнер, то он свой graphics не увеличит.
И если ТС не перерисовывает зеленый квадрат каждый кадр, то значит он либо рисует его после шестиугольника,
который УЖЕ повернут. Или же ТС учитывает при рисовании зеленого graphics увеличенную ширину и высоту шестиугольника.
И из вышеперечисленного уже можно сделать вывод, что зеленый graphics рисовать нужно ДО шестиугольника, если конечно не нужно перерисовывать по enterFrame.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.10.2014, 23:48
Помогаю со студенческими работами здесь

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

Нарисовать многоугольник с диагоналями
Помогите, пожалуйста. Есть начало кода - построение многоугольника. Не знаю как добавить диагонали const n=6; Var...

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
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 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru