Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Рисование rectangle с помощью actionscript (http://www.flasher.ru/forum/showthread.php?t=74122)

Rit 12.01.2006 15:35

Рисование rectangle с помощью actionscript
 
Подскажите, как нарисовать прямоугольник по двум заданным точкам: верхней левой и нижней правой?

В хелпе написан пример рисования линии
this.createEmptyMovieClip("line_mc", 10);
line_mc.lineStyle(1, 0x000000, 100);
line_mc.moveTo(0, 0);
line_mc.lineTo(200, 100);
line_mc._x = 100;
line_mc._y = 100;

А как нарисовать прямоугольник я сам не соображу.

Sh@man 12.01.2006 16:02

Код:

MovieClip.prototype.drawRectangle = function(x, y, width, height, color, alpha) {
        this.beginFill(color, alpha);
        this.moveTo(x, y);
        this.lineTo(x+width, y);
        this.lineTo(x+width, y+height);
        this.lineTo(x, y+height);
        this.lineTo(x, y);
        this.endFill();
};


__i 12.01.2006 16:03

Вложений: 1
для начала думаем!!!

потом смотрим каритинку, опять думаем и пишем скрипт

silin 12.01.2006 16:03

тяжелый, однако, случай..
Код:

var tl={x:10,y:10}, br={x:100,y:100};
this.createEmptyMovieClip("qwad_mc", 10);
with(qwad_mc){
        beginFill(0xFF0000);//если нужна
        lineStyle(1, 0x000000, 100);
        moveTo(tl.x, tl.y);
        lineTo(br.x, tl.y);
        lineTo(br.x, br.y);
        lineTo(tl.x, br.y);
        lineTo(tl.x, tl.y);
        endFill();
}


__i 12.01.2006 16:06

2Sh@man, эх все испортил, нужно чтоб они подумали, а потом скрипт давать, так они вообще думать перестанут

Rit 12.01.2006 16:15

спасибо, до этого я и сам дошел уже

Есть видимо класс прямоугольников (rectangle) с помощью которого можно, соответственно, их рисовать.

Ну как в паскале было. ...rectangle(x1,x2,y1,y2)
А тут по-любому вы используете все четыре точки прямоугольника

Вот я и не пойму как по двум точкам нарисовать во flash прямоугольник

Sh@man 12.01.2006 16:19

Нет, это силин всё испортил. Его код вставишь - и работает. А у меня еще надо знать что такое прототипы

KUZEN 12.01.2006 16:20

Цитата:

Сообщение от Rit
спасибо, до этого я и сам дошел уже

Есть видимо класс прямоугольников (rectangle) с помощью которого можно, соответственно, их рисовать.

Ну как в паскале было. ...rectangle(x1,x2,y1,y2)
А тут по-любому вы используете все четыре точки прямоугольника

Вот я и не пойму как по двум точкам нарисовать во flash прямоугольник

Так тебе же силин дал пример как это сделать ...

Sh@man 12.01.2006 16:24

Код:

MovieClip.prototype.drawRectangle = function(x1, y1, x2 ,y2, color, alpha) {
        this.beginFill(color, alpha);
        this.moveTo(x1, y1);
        this.lineTo(x2, y1);
        this.lineTo(x2, y2);
        this.lineTo(x1, y2);
        this.lineTo(x1, y1);
        this.endFill();
};


__i 12.01.2006 16:25

Цитата:

Сообщение от Sh@man
Нет, это силин всё испортил. Его код вставишь - и работает. А у меня еще надо знать что такое прототипы

Вы на пару все испортили %)), просто я его поста не видел когда про тебя гововорил %))

KUZEN 12.01.2006 16:28

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

silin 12.01.2006 16:30

Цитата:

А тут по-любому вы используете все четыре точки прямоугольника
объявляется конкурс на лучший алгоритм рисования прямоугольника по трем (и менее: в идеале вообще без) вершинам..:)

baron27 12.01.2006 16:32

Цитата:

Ну как в паскале было. ...rectangle(x1,x2,y1,y2)
А тут по-любому вы используете все четыре точки прямоугольника

Вот я и не пойму как по двум точкам нарисовать во flash прямоугольник
А чо не судьба заменить в прототипе Шамана width на x1 и height на y1.
И в коде тоже заменить.
Ведь x1=x+width...

Rit 12.01.2006 16:50

Я прекрасно понимаю, что вы все умные и мега программеры.

Мое программирование = 1 год в девятом классе, после этого прошло уже куча лет.

Меня знакомая попросила помочь, вот я и пришел сюда. Так что не надо издеваться как малые дети. Если вы владеете вопросом и не влом помочь, то просто помогите...

Все спасибо.

KUZEN 12.01.2006 16:56

Никто и не издевался , были даны несколько вариантов, но видетели они не устроили, хочется как всегда покороче, но всему есть предел прямоугольник без точек вообще не построить )))

__i 12.01.2006 17:31

Цитата:

Сообщение от KUZEN
На самом деле кто хотел тот бы сам разобрался открыв хелп и немного подумав головой , а кому лень тот и в твоём рисунке разбираться не будет ...

нужно - разбереться переспросит, не нужно ну и че на него время тратить?

Skubent 12.01.2006 17:38

Цитата:

Сообщение от silin
объявляется конкурс на лучший алгоритм рисования прямоугольника по трем (и менее: в идеале вообще без) вершинам..:)

По двум точкам прямоугольник рисуется, если без поворота.
А если с поворотом, то его еще на прямоугольность надо проверять :)

__i 12.01.2006 17:42

Цитата:

Сообщение от silin
объявляется конкурс на лучший алгоритм рисования прямоугольника по трем (и менее: в идеале вообще без) вершинам..:)

вообще прямоугольник задаеться 2 точками (лево верх), и (право низ), но каждая точка задаеться 2 координатами %), а из этих данных мы получаем(додымывам) недостающие координты, ну и теперь вариант он меня, если залитый прямоугольник, без обводки то можно юзать только 3 лайнТо пример silin'a c моими изменениями

Код:

var tl={x:10,y:10}, br={x:100,y:100};
this.createEmptyMovieClip("qwad_mc", 10);
with(qwad_mc){
        beginFill(0xFF0000);
//          lineStyle(1, 0x000000, 100);
        moveTo(tl.x, tl.y);
        lineTo(br.x, tl.y);
        lineTo(br.x, br.y);
        lineTo(tl.x, br.y);
//        lineTo(tl.x, tl.y);
        endFill();
}


silin 12.01.2006 17:48

Цитата:

По двум точкам прямоугольник рисуется, если без поворота.
А если с поворотом, то его еще на прямоугольность надо проверять
объявляется конкурс на лучший алгоритм проверки прямоугольника на прямоугольность :) :)

2__i : задавать можно как угодно, но рисовать-то все равно придется по вершинам.. :)

KUZEN 12.01.2006 18:10

Цитата:

Сообщение от silin
объявляется конкурс на лучший алгоритм проверки прямоугольника на прямоугольность :) :)

Вот задание :D

Код:

var tl={x:10,y:10}, br={x:100,y:100};
this.createEmptyMovieClip("qwad_mc", 10);
with(qwad_mc){
        beginFill(0xFF0000);
        moveTo(tl.x, tl.y);
        lineTo(br.x, tl.y);
        lineTo(br.x, br.y);
        lineTo(tl.x, br.y);
        endFill();
        _rotation = 34;
}



Часовой пояс GMT +4, время: 01:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.