|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2006
Сообщений: 7
|
Как закрасить сектор круга зная его радиус и угол сектора?
вот.
|
|
|||||
[+6 16.03.11]
Регистрация: 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 (сейчас не вспомню) |
|
|||||
Регистрация: 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) |
|
|||||
Ветеран форума
|
Цитата:
__________________
BestMasterиZация |
|
|||||
Регистрация: 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(); } |
|
|||||
Ветеран форума
|
Можно ещё добавить коэффициент который определял бы по часовой стрелке рисовать или против
_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, время: 05:53. |
|
« Предыдущая тема | Следующая тема » |
|
|