![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2003
Адрес: Москва
Сообщений: 188
|
Подскажите пожалуйста, что не так. Надо нарисовать окружность радиусом 40 с координатами 41 : 41.
(одна окружность там нарисована, нужна такая же, но большего диаметра) И как задать ширину линии. И если можно, то как ее в случае небходимости залить( простая). |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Окружность/точная/
_root.createEmptyMovieClip("name", 1); with (_root.name) { lineStyle(1, 0x00ffcc, 100); var rad=40 moveTo(-rad, 0); curveTo(-rad, -rad*Math.SIN(Math.PI/180 * 22.5), -rad*Math.COS(Math.PI/180 * 45), -rad*Math.SIN(Math.PI/180 * 45)); curveTo(-rad*(1-Math.SIN(Math.PI/180 * 22.5))/Math.sqrt(2), -rad, 0, -rad); curveTo(rad*(1-Math.SIN(Math.PI/180 * 22.5))/Math.sqrt(2), -rad, rad*Math.COS(Math.PI/180 * 45), -rad*Math.SIN(Math.PI/180 * 45)); curveTo(rad, -rad*Math.SIN(Math.PI/180 * 22.5), rad, 0); curveTo(rad, rad*Math.SIN(Math.PI/180 * 22.5), rad*Math.COS(Math.PI/180 * 45), rad*Math.SIN(Math.PI/180 * 45)); curveTo(rad*(1-Math.SIN(Math.PI/180 * 22.5))/Math.sqrt(2), rad, 0, rad); curveTo(-rad*(1-Math.SIN(Math.PI/180 * 22.5))/Math.sqrt(2), rad, -rad*Math.COS(Math.PI/180 * 45), rad*Math.SIN(Math.PI/180 * 45)); curveTo(-rad, rad*Math.SIN(Math.PI/180 * 22.5), -rad, 0); } _root.name._x=41 _root.name._y=41 |
|
|||||
|
Bumble Bee
[+1 05.07.06]
|
а мона еще по другому:
function drawCircle(name,div,color,linecolor,alpha,radius) {
_root.createEmptyMovieClip("name", div);
with (_root.name) {
lineStyle(1, linecolor, 100);
beginFill(color, alpha);
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();
_width=radius;
_height=radius;
}
}
drawCircle(name,5,0x000000,0xFFFF00,30,40);
globalToLocal();....а еще вот так можно: _root.createEmptyMovieClip("circle", div);
with (_root.circle) {
lineStyle(100, 0x000000, 100);
moveTo(200, 200);
lineTo(202.5,202.5);
}
![]()
__________________
Portfolio |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Цитата:
![]() |
|
|||||
|
Штрек...
Ну чё ты.... Школа... пятый класс... r=10; mc = _root.createEmptyMovieClip("okr", 1); with (mc) { beginFill(0x000000, 0); lineStyle(1, 0x000000, 100); 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)); 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)); lineTo(x, y); } endFill(); } mc.onPress=function(){ startDrag(this,false); onMouseUp=function(){ stopDrag(); } } Вот! радиус - первая же переменная ( r )! радуйтесь жизни... А ещё расскажите нам, какой из способов вы предпочли, спасибо! |
|
|||||
|
"человек"
Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
|
2 2K WebStudio
двоешник ![]() а вот это будет корявый угловатый тормазной вариант ![]() MovieClip.prototype.drawArc=function(x,y,radius,arc,startAngle,yRadius){
if(yRadius==undefined){yRadius=radius}
if(Math.abs(arc)>360){arc=360}
segs=Math.ceil(Math.abs(arc)/45)
segAngle=arc/segs
theta=-(segAngle/180)*Math.PI
angle=-(startAngle/180)*Math.PI
ax=x-Math.cos(angle)*radius
ay=y-Math.sin(angle)*yRadius
if(segs>0){for(i=0;i<segs;i++){
angle+=theta
angleMid=angle-(theta/2)
bx=ax+Math.cos(angle)*radius
by=ay+Math.sin(angle)*yRadius
cx=ax+Math.cos(angleMid)*(radius/Math.cos(theta/2))
cy=ay+Math.sin(angleMid)*(yRadius/Math.cos(theta/2))
this.curveTo(cx,cy,bx,by)}}}
with(this.createEmptyMovieClip("circle",1)){my_radius=Math.sqrt(Stage.width*Stage.width+Stage.height*Stage.height)/5;lineStyle(5,0xFF0000,100);beginFill(0x000000,50);moveTo(My_radius,0);drawArc(my_radius,0,my_radius,360,0);_x=Stage.width/2;_y=Stage.height/2}
__________________
flash it Последний раз редактировалось Techmaker; 02.11.2003 в 14:51. |
|
|||||
|
"человек"
Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
|
2 2K WebStudio
а вот это будет корявый угловатый тормазной вариант ![]() двоешник ![]() 2 Верас Ольга MovieClip.prototype.drawArc=function(x,y,radius,arc,startAngle,yRadius){
if(yRadius==undefined){yRadius=radius}
if(Math.abs(arc)>360){arc=360}
segs=Math.ceil(Math.abs(arc)/45)
segAngle=arc/segs
theta=-(segAngle/180)*Math.PI
angle=-(startAngle/180)*Math.PI
ax=x-Math.cos(angle)*radius
ay=y-Math.sin(angle)*yRadius
if(segs>0){for(i=0;i<segs;i++){
angle+=theta
angleMid=angle-(theta/2)
bx=ax+Math.cos(angle)*radius
by=ay+Math.sin(angle)*yRadius
cx=ax+Math.cos(angleMid)*(radius/Math.cos(theta/2))
cy=ay+Math.sin(angleMid)*(yRadius/Math.cos(theta/2))
this.curveTo(cx,cy,bx,by)}}}
with(this.createEmptyMovieClip("circle",1)){
my_radius=Math.sqrt(Stage.width*Stage.width+Stage.height*Stage.height)/5
lineStyle(5,0xFF0000,100)
beginFill(0x000000,50)
moveTo(My_radius,0)
drawArc(my_radius,0,my_radius,360,0)
_x=Stage.width/2;_y=Stage.height/2}
![]()
__________________
flash it |
|
|||||
|
Лучше всего вот так:
lineStyle( 0, 0x0000FF, 100 ); beginFill( 0xFF0000 ); moveTo( 500, 500 ); curveTo( 600, 500, 600, 400 ); curveTo( 600, 300, 500, 300 ); curveTo( 400, 300, 400, 400 ); curveTo( 400, 500, 500, 500 ); endFill(); А потом менять размер мувика! Там было лево т.к. для маленьких окружностей шаг был слишком велик! Так его можно уменьшить!Только для маленьких... Для боьших - не надо... повиснуть может во всяком случае подгрузит комп... |
|
|||||
|
"человек"
Регистрация: Nov 2002
Адрес: +-
Сообщений: 1,807
|
Цитата:
![]()
__________________
flash it |
|
|||||
|
Ну да...
Это из хелпа... |
![]() |
Часовой пояс GMT +4, время: 18:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|