Просмотр полной версии : Окружность программно
Может кто-нибудь когда-нибудь рисовал окружность программно... ?
В плане нажимаешь на кнопку мыши .. едешь в какую-то точку - отпускаешь её и рисуется окружность...
тот исходник что в словаре - плохо рисует ... а мой ... не в тему...
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;
}
офигенно ..... =)
спасибо большое...
ты меня навел на мысль про маусМув... так и буду делать.....
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.