PDA

Просмотр полной версии : Окружность программно


wwwita
23.04.2003, 12:40
Может кто-нибудь когда-нибудь рисовал окружность программно... ?
В плане нажимаешь на кнопку мыши .. едешь в какую-то точку - отпускаешь её и рисуется окружность...

тот исходник что в словаре - плохо рисует ... а мой ... не в тему...

sergwizard
23.04.2003, 15:35
попробуй такой код:
this.onMouseDown = function() {
startX = _xmouse;
startY = _ymouse;
dragging = true;

}
this.onMouseMove = function() {
if (dragging) {
endX = _xmouse;
endY = _ymouse;
_root.createEmptyMovieClip("circle",0);
with(_root.circle){
var x = 0;
var y = 0;
var r = Math.sqrt(((endX-startX)*(endX-startX))+((endY-startY)*(endY-startY)));
var ugol = 360;
moveTo(x, y);
beginFill(0xFF00FF,50);
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();
}
}
circle._x = startX;
circle._y = startY;
}
this.onMouseUp = function() {
dragging = false;
}

sergwizard
23.04.2003, 18:25
Или такой:
this.onMouseDown = function() {
startX = _xmouse;
startY = _ymouse;
dragging = true;

}
//====================
this.onMouseMove = function() {
if (dragging) {
endX = _xmouse;
endY = _ymouse;
_root.createEmptyMovieClip("circle",0);
with(circle){
k = Math.PI /180;
R = Math.sqrt(((endX-startX)*(endX-startX))+((endY-startY)*(endY-startY)));
lineStyle(1, 0x0000FF, 100);
moveTo(R,0);
beginFill(0xFF00FF,20)
_spotx = R;
_spoty = 0;

for (var i=0; i<361.4; i++) {
getSpot(i);
curveTo(_spotX, _spotY, endX, endY);
}
}
circle._x = startX;
circle._y = startY;
}
}
function getSpot(i) {
endX = _spotx;
endY = _spoty;
_spotx = R * Math.cos(i*k);
_spoty = R * Math.sin(i*k);
endFill();
}
//================
this.onMouseUp = function() {
dragging = false;
}

wwwita
23.04.2003, 18:41
офигенно ..... =)

спасибо большое...

ты меня навел на мысль про маусМув... так и буду делать.....