Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 24.11.2003, 16:54
SanD вне форума Посмотреть профиль Отправить личное сообщение для SanD Найти все сообщения от SanD
  № 1  
SanD

Регистрация: Nov 2003
Сообщений: 3
Question Нарисовать круг при помощи As?

Как при помощи AS нарисовать круг и по мере необходимости в дальнейшем менять его радиус?

Старый 24.11.2003, 19:10
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 2  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
пользоваться поиском :)
и читать внимательно.

http://www.flasher.ru/forum/showthre...ED%EE%F1%F2%FC

Старый 24.11.2003, 20:02
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 3  
opex
[+1.3 05.04.09]
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
юзай код

Код:
Object.prototype.circleTo = circle;
function circle(radius, NumberOfSteps, Xcenter, Ycenter, thickness, rgb, alpha) {
	Arr = [50, 10, 0, 0, 2, 0, 100];
	for (var i = 0; i<7; i++) {
		if (arguments[i] != undefined) {
			Arr[i] = arguments[i];
		}
	}
	var R = Arr[0];
	var X0 = Arr[2];
	var Y0 = Arr[3];
	var step = 2*Math.PI/Arr[1];
	var R1 = R/Math.cos(step/2);
	this.lineStyle(Arr[4], Arr[5], Arr[6]);
	this.moveTo(X0+R, Y0);
	for (var phi = step; phi<=2*Math.PI; phi += step) {
		var ControlX = X0+R1*Math.cos(phi-step/2);
		var ControlY = Y0-R1*Math.sin(phi-step/2);
		var AnchorX = X0+R*Math.cos(phi);
		var AnchorY = Y0-R*Math.sin(phi);
		this.curveTo(ControlX, ControlY, AnchorX, AnchorY);
	}
}
_root.circleTo(100, 15, 200, 200, 4, 0x00BB00, 100);
__________________
Бойтесь китайцев, компы приносящих!

Старый 24.11.2003, 20:15
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 4  
opex
[+1.3 05.04.09]
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
а еще так
Код:
r = 30;
_root.createEmptyMovieClip("okr", 1);
okr.beginFill(0x000000, 0);
okr.lineStyle(1, 0x000000, 100);
okr.moveTo(-1*_root.r, 0);
for (x=_root.r*-1; x<=_root.r; x++) {
	y = Math.sqrt(Math.pow(_root.r, 2)-Math.pow(x, 2));
	okr.lineTo(x, y);
}
for (x=_root.r; x>=-1*_root.r; x--) {
	y = -1*Math.sqrt(Math.pow(_root.r, 2)-Math.pow(x, 2));
	okr.lineTo(x, y);
}
__________________
Бойтесь китайцев, компы приносящих!

Старый 24.11.2003, 20:19
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 5  
opex
[+1.3 05.04.09]
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
или так

Код:
_root.createEmptyMovieClip("cir", 1);
with (_root.cir) {
	lineStyle(1, 0x000000, 100);
	beginFill(0x000000, 50);
	moveTo(200, 200);
	curveTo(200, 180, 215, 165);
	curveTo(230, 150, 250, 150);
	curveTo(270, 150, 285, 165);
	curveTo(300, 180, 300, 200);
	curveTo(300, 220, 285, 235);
	curveTo(270, 250, 250, 250);
	curveTo(230, 250, 215, 235);
	curveTo(200, 220, 200, 200);
	endFill();
}
__________________
Бойтесь китайцев, компы приносящих!

Старый 24.11.2003, 20:20
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 6  
opex
[+1.3 05.04.09]
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
а можно и так

Код:
var R = 100;
// радиус окружности
var X0 = 200;
// координата X центра окружности
var Y0 = 200;
// координата Y центра окружности
var N = 100;
// количество отрезков, из которых должна быть построена окружность
_root.createEmptyMovieClip("roun", 0);
// создаем холст
with (roun) {
	// используем предложение with для упрощения набора кода
	lineStyle(2, 0xFF0000, 100);
	// окружность будет рисоваться красной непрозрачной линией толщиной в 2 px
	moveTo(X0+R*Math.cos(0), Y0+R*Math.sin(0));
	// опускаем перо в начальной точке рисования (a =0)
	// последовательно соединяем все N точек, соответствующих изменению (от 0 до 2p
	for (var alpha = 0; alpha<=2*Math.PI; alpha += 2*Math.PI/N) {
		lineTo(X0+R*Math.cos(alpha), Y0-R*Math.sin(alpha));
	}
}
__________________
Бойтесь китайцев, компы приносящих!

Старый 24.11.2003, 20:26
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 7  
opex
[+1.3 05.04.09]
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
да и забыл самый сложны способ


Код:
lineStyle(100, 0x000000, 100);
moveTo(100, 100);
lineTo(100.5, 100);
__________________
Бойтесь китайцев, компы приносящих!

Старый 24.11.2003, 20:32
SanD вне форума Посмотреть профиль Отправить личное сообщение для SanD Найти все сообщения от SanD
  № 8  
SanD

Регистрация: Nov 2003
Сообщений: 3
Осталься вопрос, если несложно:
Можно ли после того как круг нарисован плавно менять его радиус, т.е. эффект увеличения и уменьшения круга, а не резкий скачёк скажем с 10 до 120.
я бы попробывал через scale, но может есть лучший вариант?

Старый 24.11.2003, 20:34
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 9  
opex
[+1.3 05.04.09]
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
да какже забыл самый оптимальный способ


Код:
_root.createEmptyMovieClip("circl", -1);
circl.lineStyle(2, 0x000000, 100);
circl.moveTo(0, 0);
circl.lineTo(0, 100);
for (i=0; i<361; i++) {
	_root.circl.duplicateMovieClip("cir"+i, i);
	setProperty("cir"+i, _rotation, i);
}
_x = 150;
_y = 150;

ну что SanD ты догодался кокой твой мозг быстрый и догадливый из стольки способов в твою голову не пришол не один

зы кушай морковку помогает
__________________
Бойтесь китайцев, компы приносящих!

Старый 24.11.2003, 20:46
SanD вне форума Посмотреть профиль Отправить личное сообщение для SanD Найти все сообщения от SanD
  № 10  
SanD

Регистрация: Nov 2003
Сообщений: 3
2 Орех
Сенкс за варианты, теперь осталось дело за малым выбрать любой...

Создать новую тему   Часовой пояс GMT +4, время: 12:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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