Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для Nebiros
41 / 40 / 16
Регистрация: 23.03.2010
Сообщений: 3,122

Замостить прямоугольник картинками 2х видов по схеме

03.10.2013, 18:57. Показов 2272. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как наиболее простым методом вывести рисунок на экран? (к примеру квадратную картинку 32х32 пкс)

и вопрос второй - если мне нужно вывести 16 элементов (4х4 квадратных картинок), к примеру двух разновидностях такого порядка:
0010
1011
1010
0011
то при их выводе их нужно как то объединять в один целый рисунок? (кое где вычитал что не правильно делать много объектов которые статические)

Добавлено через 1 минуту
картинка есть уже в проекте в библиотеке, теперь как ее вывести на экран в цикле в нужных координатах...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.10.2013, 18:57
Ответы с готовыми решениями:

Замостить боковые полосы сайта слева и справа разными картинками
Доброго времени суток, уважаемые товарищи. У меня возникла проблема с замосткой двух разных рисунков по краям сайта. Нужно один разместить...

Как замостить текстурой прямоугольник?
Имеется уже созданная (скорее всего загруженная из файла) текстура на hdc1, она известного размера (xt,yt) Надо ей замостить прямоугольник...

Количество способов замостить прямоугольник M*N прямоугольниками M*1 и 1*M
Добрый день! Подскажите пожалуйста, как решить данную задачу: Дан прямоугольник M*N. Нужно узнать сколькими способами его можно...

8
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
03.10.2013, 19:36
Есть методы простые, сложные, а есть целесообразные. И выбирать нужно именно то, что подходит в каждой конкретной ситуации.
Учитывая вышесказанное, могу предложить 2 варианта:
1) создавать картинки в цикле и добавлять их на сцену в цикле одним объектом.
2) создать одну битмапдату (BitmapData), куда отрисовывать нужные изображения, потом на ее основе создать Bitmap и поместить ее на сцену.

Не по теме:

При желании можно извратиться на еще несколько вариантов или несколько изменить вышеуказанные.

1
6 / 6 / 0
Регистрация: 23.11.2011
Сообщений: 52
03.10.2013, 19:49
1)
ActionScript 3
1
2
3
4
5
6
7
8
9
//перед конструктором
[Embed(source="pig.png")]
private var pigC:Class;
private var pigPng:BitmapAsset=new pigC();
// где-то внутри
addChild(pigPng);
// координаты 
pigPng.x=50;
pigPng.y=50;
2) Сам недавно столкнулся с похожей штукой(не знаю на счет не правильности, но это очень неудобно).
Вычитал про тайлсеты.
Проще объединить 2 картинки в 1(это и называется тайлсет, вроде бы).
А потом вырезать из этой картинки нужные куски.
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
//загрузили картинку как в 1). назовем tailSet
 
//в конструкторе:
createMap();
getMap();
//
private function createMap():void
        {
            var imageBMP:BitmapData =mapTestPng.bitmapData
// column, stroke- количество строк и столбцов на которое разбиваем картинку( в моем примере на 2х2)
            sliceWidth=tailSet.width/column; 
            sliceHeight=tailSet.height/stroke;
//двухмерный массив для удобства
            slices=new Array(stroke);
            var k:int=0
            for (var i:int=0;i<stroke;i++)
            {
                for(var j:int=0;j<column;j++)
                {
                    var sliceBmp:BitmapData=new BitmapData(sliceWidth,sliceHeight,false);
                //вот тут вырезаем из картинки прямоугольники размером 30 на 30(картинка изначально 60на60)
    sliceBmp.copyPixels(imageBMP,new Rectangle(j*sliceWidth,i*sliceHeight,sliceWidth,sliceHeight),new Point());
                    var slice:Bitmap=new Bitmap(sliceBmp);
                    slices[k]=slice;
                    k++;
                }
            }
        }
        private function getMap():void
        {
//располагаем куски картинки в нужном порядке
            var coordArray:Array=new Array(2,3,1,4,4,3);
            var mapArray:Array=new Array(6);
            var s:int=0;
//массив столбцов
            for (var i:int=0;i<3;i++)
            {
//строк
                for (var j:int=0;j<2;j++)
                {
                    var slice:Bitmap=new Bitmap(slices[coordArray[s]-1].bitmapData);
                    mapArray[s]=slice;
                    mapArray[s].x=i*(sliceWidth);
                    mapArray[s].y=j*(sliceHeight);
                    addChild(mapArray[s]);
                    s++;
                }
            }
        }
если картинка лежит в библиотеке, к ней можно обратиться так:
ActionScript 3
1
2
private var png:MovieClip=new (название картинки)()
addChild(png);
1
 Аватар для Nebiros
41 / 40 / 16
Регистрация: 23.03.2010
Сообщений: 3,122
03.10.2013, 19:53  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
2) создать одну битмапдату (BitmapData), куда отрисовывать нужные изображения, потом на ее основе создать Bitmap и поместить ее на сцену.
вот с данным классом я смотрел пример но у меня не получилось его запустить, так же пытался не в цикле а просто одну картинку запустить тоже не получилось, вполне вероятно что проблема в том как я вызываю функцию в котором находится эта функция...
вот пробовал в основном классе запустить просто фигуру нарисованную
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package general {
  import flash.display.Sprite;
  import general.Someclass;
  flash.display.Graphics
    
  public class App extends Sprite{
    public function App(){
      var square:Sprite = new Sprite();
      square.graphics.beginFill(0xFF);
      square.graphics.drawRoundRect(0, 0, 100, 50, 10, 10);
      square.graphics.endFill();
      addChild(square);
      }
    // Someclass.test(); - а так потом пытался вызвать
    }
  }
то есть так работает , а когда я эту конструкцию засунул к класс Someclass в метод test();

ActionScript 3
1
2
3
4
5
6
7
8
 public class Someclass extends Sprite{
    public function test(){
      var square:Sprite = new Sprite();
      square.graphics.beginFill(0xFF);
      square.graphics.drawRoundRect(0, 0, 100, 50, 10, 10);
      square.graphics.endFill();
      addChild(square);
      }
и пытался вызвать через Someclass.test(); уже не работало, не совсем понял просто последовательность это всего...
0
6 / 6 / 0
Регистрация: 23.11.2011
Сообщений: 52
03.10.2013, 19:56
Забыл про картинку.
Изображения
 
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
03.10.2013, 19:59
Magikl, в вашем примере создается слишком много BitmapData.
Nebiros, только что речь шла про картинки (растровые?), а теперь начинаем обсуждать векторное программное рисование. Можно еще раз четко обозначить, что именно необходимо?
0
6 / 6 / 0
Регистрация: 23.11.2011
Сообщений: 52
03.10.2013, 20:07
Цитата Сообщение от TanaTiX Посмотреть сообщение
Magikl, в вашем примере создается слишком много BitmapData.
[
Это не мой пример, я его где-то нашел.

Не совсем по этой теме, но с ней тоже связано.(другую смысла нет создавать)
Мне нужно из 1-й картинки, порезанной на битмапы, создать два слоя(или больше). Но в справочнике adobe говорится, что (если я правильно понял) битмапы нельзя накладывать друг на друга. Накладывать можно, но теряется прозрачность(пример: есть куст и кубик травы, нужно поставить куст на траву, но видно только куст(а за ним белый фон(хотя он должен быть прозрачным)). Я знаю, что это как-то легко решается, но не могу найти как. Подскажите, пожалуйста, что-нибудь по данному вопросу.
0
 Аватар для Nebiros
41 / 40 / 16
Регистрация: 23.03.2010
Сообщений: 3,122
03.10.2013, 20:10  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
только что речь шла про картинки (растровые?), а теперь начинаем обсуждать векторное программное рисование. Можно еще раз четко обозначить, что именно необходимо?
да я вижу что я не правильно вызываю саму функцию класса, будь то картинка или векторное рисование, поспешил я, надо толком разобраться с правильным вызовом функции класса.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
03.10.2013, 21:18
Цитата Сообщение от Magikl Посмотреть сообщение
Я знаю, что это как-то легко решается
Да, легко, создается прозрачная битмапа (точнее битмапдата, на основе которой создается битмапа(ы)), в которую рисуются нужные элементы (естественно, также полупрозрачные, обычно на основании изображений png)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.10.2013, 21:18
Помогаю со студенческими работами здесь

Вычислить по вводимым данным площадь фигур разных видов - треугольник, прямоугольник, окружность
Написать программу вычисляющую по вводимым данным площадь фигур разных видов (треугольник, прямоугольник, окружность). Использовать записи...

Вывести на экран "прямоугольник", образованный из двух видов символов.
Ребята привет! есть задачка -- Вывести на экран &quot;прямоугольник&quot;, образованный из двух видов символов. Контур прямоугольника должен...

В озере водится несколько видов рыб. Три рыбака поймали рыб, представляющих некоторые из имеющихся видов
В озере водится несколько видов рыб. Три рыбака поймали рыб, представляющих некоторые из имеющихся видов. Определить: какие виды рыб есть у...

В массиве записана информация о стоимости 30 видов товара. Определить стоимость двух самых дорогих видов товара
В массиве записана информация о стоимости 30 видов товара. Определить стоимость двух самых дорогих видов товара. Хелп плиз.

План видов характеристик в качестве характеристики значения плана видов характеристик
всем привет. я вроде как чета понимаю в 1с и казалось бы херли там план видов характеристик - все просто. и вот возник вопрос: План...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru