Welkom!

Deel je kennis met anderen in deze Flashgemeenschap!
Gebruikersnaam:
Wachtwoord:
Wachtwoord opslaan?
Wachtwoord vergeten?

TUTORIALS / Flash 3D

3D Engine m.b.v. Actionscript
197 downloads, 19377 keer gelezen
(February 7, 2006)
Waardering: 0 keer gestemd 
 0 van de 5
 
inleiding stap .1. .2. .3. .4. .5. .6.  voorbeeld download

Stap 2

Perspectief

Vervolgens gaan we een functie maken die de bestaande punten x en y zal omzetten naar punten die rekening houden met de derde facter nl. z.
Dit zullen we doen met de formule : perspectief = afstand / (afstand - z). De letterlijke defenitie hiervan is : de mate waarin het object moeten worden geschaald.
Hoe dichter het object bij het scherm hoe groter het moet zijn, hoe verder weg hoe kleiner.
De afstand is de waarde die ik daarnet heb besproken.Meestal zal ze gelijk zijn aan 300.
Dan zullen we x en y vermenigvuldigen met het perspectief.
bvb:

x = 50, y = 100, z = 100, afstand = 300.

Passen we dit toe op de formule dan krijgen we :

perspectief = 300 / (300 - 100)
perspectief = 1.5

Nu vermenigvuldigen we x en y met perspectief en krijgen we :

x = 75
y = 150

Dit zijn dan de twee nieuwe berekende punten die rekening houden met de z.
x en y zijn groter geworden wat min of meer inhoudt dat het punt dichter bij het scherm is gekomen.

Hier is dan de functie die onder de constructor functie in Shape.as moet komen :

function set2DTo3D():Void {
    var persPoints:Array = new Array();
    for (var i:Number = 0; i < this.pointsArray.length; i++) {
        persPoints[i] = new Object();
        this.perspectief = this.scaleValue / ( this.scaleValue - this.pointsArray[i].z);
        persPoints[i].x = this.pointsArray[i].x * this.perspectief;
        persPoints[i].y = this.pointsArray[i].y * this.perspectief;
    }
    this.draw(persPoints);
}

Eerst wordt er een nieuwe array gemaakt waar de nieuwe punten in zullen worden gezet. Bij regel 2 wordt er een for loop functie gestart die alle punten
zal doorlopen. Daarna wordt het perspectief berekent aan de hand van de formule hierboven. En tenslotte worden de x en y vermenigvuldigd met het perspectief en in het object gezet. Dat daarboven wordt gedeclareerd (persPoints[i] = new Object()).

We maken van elk element in de array een object omdat het dan makkelijk is om x, y en z in één element te steken. Je zou dit anders kunnen oplossen
door bvb. een driedimensionale array te gebruiken. Maar ik verkies een object.

Als dan alles doorlopen is wordt de draw functie geactiveerd en men geeft de persPoints array mee als parameter.

>>> Ga naar stap 3
Geef hier je waardering: Matig 1 2 3 4 5 Geweldig!
  Waardering:
Error?? Floris V. (21 December 2007, 14:20)

RE: Error?? Baptist vandersmissen (21 December 2007, 14:56)

Ik heb inderdaad ook gemerkt dat als je op "ga naar stap 1" drukt, dan een foutmelding komt. Foute link blijkbaar, dat heb ik dan goed op tijd opgemerkt.. :\

Maar je kan altijd gewoon naar de eerste stap door vanboven in het menu op 1 te drukken.

Greetz


thom, link thom de hoog (09 May 2007, 09:57)

hoi,

bij mij doe de link het niet

zou iemand de tutorial willen sturen aan mij over email

thom_dehoog@hotmail.com

(html bestand alstublieft


voorbeeldje? Ate Visser (17 March 2007, 22:12)

Hoi Baptist,

Super scriptje! Ik heb 't gebruikt (en een beetje aangepast voor schaduw) en er een kaleidocycle ingezet... met nog wat ouwe flash-voorbeelden is 't best leuk geworden, vind ik... :D zie hier: http://www.prosac.nl/upload/kc4.html

Cheers,

a-t-1


download Niek van Oost (21 December 2006, 07:33)
Downloaden doet het niet! Link is niet goed!
1-5 | 6-7