Volledige versie bekijken : mc attach als circel
meester
%Europe/Berlin %567 %2005, 14:37
ik heb het volgende scriptje:
var straal:Number = 100;
var newY:Number;
var newX:Number;
var hoek:Number = 0;
var test:Number = 0;
_root.onEnterFrame = function(){
for (i:Number=1; i<=12 ; i++){
_root.target.attachMovie("mc", "mc" + i, i);
newY=_root.target["mc"+i]._x = Math.sin(hoek * Math.PI/180) * straal;
_root.target["mc"+i]._y = Math.sqrt((straal*straal)-(newY*newY));
hoek+=30;
}
delete onEnterFrame;
}
target is hierbij waarin ik de mc ga laden, zodat ik een nulpunt heb.
het probleem is dat ik hiermee een halve circel krijg!!!
iemand een IDEE?
Fl4sh3r
%Europe/Berlin %648 %2005, 16:34
Je goneometrie klopt redelijk, het probleem is echter dat je ook de negatieve uitkomst van Math.sqrt(r*r - y*y) moet hebben.
2*2 = 4
-2 * -2 = 4
Math.sqrt(4) = 2 of -2
Het makkelijkst is dat op te lossen door de _y niet uit te rekenen met Pyhagoras, maar met trigoneometrie:
_root.target["mc"+i]._y = Math.cos(hoek * Math.PI/180) * straal;
meester
%Europe/Berlin %663 %2005, 16:55
inderdaad zeg, stom van me ... thanks
Dauntless
%Europe/Berlin %688 %2005, 17:31
En dit werkt gemakkelijker:
var straal:Number = 100;
var newY:Number;
var newX:Number;
var hoek:Number = 0;
var test:Number = 0;
for (i:Number=1; i<=12 ; i++){
var mc = this.target.attachMovie("mc", "mc" + i, i);
mc._x = Math.cos(hoek * Math.PI / 180) * straal;
mc._y = Math.sin(hoek * Math.PI/180) * straal;
hoek+=30;
}
}
@Fl4sh3r: Cosinus is toch voor de x en niet voor de y ...?
@meester: aangezien je de onEnterFrame verwijderd na 1 frame is het nogal dom om dit in een onEnterFrame te zetten ... Ook kan je dus de nieuw aangemaakte mc aan een var toewijzen zodat je gemakkelijk aan de properties kunt en zo :)
Roenes
%Europe/Berlin %696 %2005, 17:43
@Fl4sh3r: Cosinus is toch voor de x en niet voor de y ...?
Jepz :)
Fl4sh3r
%Europe/Berlin %698 %2005, 17:46
Ik heb van die leuke ezelsbruggetjes geleerd:
SOS, CAS, TOA
sin(a) = O/S
cos(a) = A/S
tan(a) = O/A
O = Overstaande zijde
A = Aanliggende zijde
S = schuine zijde
Of het voor x of voor y is hangt dus af wel welke hoek je uitgaat.
http://download.bleq.nl/image15.png
Dauntless
%Europe/Berlin %703 %2005, 17:53
In het algemeen wordt er vanuit gegaan dat je de eerste neemt, aangezien het ook die hoek is die je moet toewijzen aan _rotation of dergelijke... Ik zie niet direct een logische rede om die andere hoek te nemen...
En in de goniometrische cirkel staat sinus ook voor y ...
Roenes
%Europe/Berlin %705 %2005, 17:56
Als je een cirkel tekent of een cirkelbeweging maakt, dan reken je altijd vanuit het middelpunt van de cirkel. Via SOSCASTOA (middelbare school flashback ;)) kom je er altijd op neer dat je cos gebruikt voor de x-as en sin voor de y-as.
En net zoals Dauntless zegt: waarom zou je een andere hoek nemen? Dan maak je het voor jezelf moeilijker als het is :)
meester
%Europe/Berlin %990 %2005, 00:45
enige waar ik nog mee zit, hoe kant ik elke movieclip apart conrtoleren, bijv alpha of scale bijv.
mc1 bla bla of mc2 werkt nu niet ? of doe ik dit verkeerd ?
aangezien alles met _root.target["mc"+i] bijv is...
Fl4sh3r
%Europe/Berlin %002 %2005, 01:03
_root.target.mc1(._alpha)
of
_root.target["mc1"](._alpha)
als het goed is
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.