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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Apr 2006
Сообщений: 7
По умолчанию Как закрасить сектор круга зная его радиус и угол сектора?

вот.

Старый 17.04.2006, 18:19
dedsky вне форума Посмотреть профиль Отправить личное сообщение для dedsky Найти все сообщения от dedsky
  № 2  
Ответить с цитированием
dedsky
[+6 16.03.11]
 
Аватар для dedsky

Регистрация: Jul 2004
Адрес: от Москвы до самых до окраин
Сообщений: 172
рисование прямыми отрезками
Код:
mc.lineStyle();
mc.beginFill();
mc.moveTo(); // тыркаешь в начало дуги
for (ang= "от какого угла", ang="до", ang="прибавляешь шаг") {
xc=R*cos(ang);
yc=R*sin(ang);
mc.lineTo(xc, yc);
}
mc.lineTo(); // конец дуги
mc.lineTo(); // центр дуги
mc.endFill();
ошибки сам исправь
еще можно corveTo (сейчас не вспомню)

Старый 17.04.2006, 18:48
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 3  
Ответить с цитированием
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Код:
var x=200, y =100;//координаты сектора
var ugol = 60;//угол
var r = 150;//радиус
_root.createEmptyMovieClip("msec", 1);
	with(_root["msec"+n]){
	lineStyle(0, 0, 0);
	beginFill(0xFF0000, 100);
	moveTo(x, y);
	for (t=0; t<((Math.PI/180)*ugol); t += 0.01) {
		lineTo(x+r*Math.cos(t), y+r*Math.sin(t));
	}
	lineTo(x, y);
	endFill();
}
Вот.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 17.04.2006, 19:00
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 4  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
Цитата:
Сообщение от sergwizard
Код:
var x=200, y =100;//координаты сектора
var ugol = 60;//угол
var r = 150;//радиус
_root.createEmptyMovieClip("msec", 1);
	with(_root["msec"+n]){
	lineStyle(0, 0, 0);
	beginFill(0xFF0000, 100);
	moveTo(x, y);
	for (t=0; t<((Math.PI/180)*ugol); t += 0.01) {
		lineTo(x+r*Math.cos(t), y+r*Math.sin(t));
	}
	lineTo(x, y);
	endFill();
}
Вот.
только без n with(msec)
__________________
BestMasterиZация

Старый 17.04.2006, 19:23
andrey3510 вне форума Посмотреть профиль Отправить личное сообщение для andrey3510 Найти все сообщения от andrey3510
  № 5  
Ответить с цитированием
andrey3510

Регистрация: Apr 2006
Сообщений: 7
и наконец подводя итог
Код:
function drawSektor(sektor:MovieClip, x0:Number, y0:Number, R:Number, fillColor:Number, angle:Number):Void {
	sektor.clear();
	sektor.lineStyle(1, fillColor);
	sektor.beginFill(fillColor);
	sektor.moveTo(x0, y0);
	sektor.lineTo(x0, y0-R);
	for (var i:Number = 0; i<=angle; i++) {
		xc = x0-R*Math.sin(i*Math.PI/180);
		yc = y0-R*Math.cos(i*Math.PI/180);
		sektor.lineTo(xc, yc);
	}
	sektor.lineTo(x0, y0);
	sektor.endFill();
}
всем спасибо .

Старый 17.04.2006, 19:57
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 6  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
Можно ещё добавить коэффициент который определял бы по часовой стрелке рисовать или против

Код:
_root.createEmptyMovieClip("msec", 1);
function drawSektor(sektor:MovieClip, x0:Number, y0:Number, R:Number, fillColor:Number, angle:Number,k:Number):Void {
	sektor.clear();
	sektor.lineStyle(1, fillColor);
	sektor.beginFill(fillColor);
	sektor.moveTo(x0, y0);
	sektor.lineTo(x0, y0-R);
	for (var i:Number = 0; i<=angle; i++) {
		xc = x0-R*Math.sin(i*Math.PI/180)*k;
		yc = y0-R*Math.cos(i*Math.PI/180);
		sektor.lineTo(xc, yc);
	}
	sektor.lineTo(x0, y0);
	sektor.endFill();
}
//
drawSektor(msec,100,100,100,0xFF0000,99,-1);
__________________
BestMasterиZация

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

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

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


 


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


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