» Utilizator
LAMP
» Parteneri» De citit» Recomandari» Taskuri securitate » Statistici
  • 65486 de mesaje.
  • 7732 de topicuri.
  • 1231 de utilizatori.
  •  
  • Kopotosa e ultimul utilizator inregistrat.
[Detalii]

 

| |
Pagini: [1]
Print

Cool Bezier [350 afisari]

Th3 P!mp
*


Mesaje: 253
OfflineOffline


Buna .. a trebuit sa fac la lucru ceva legat de curbele bezier (in 3D) si am facut ceva teste sa vad ce si cum ...
am atasat cum arata curbele bezier de gradul 20 (puncte random in 2D) .. se poate face pt oricate puncte

ce imi place cum sunt desenate Love struck hee hee

o sa atasez si codul deseara Tongue
Logged
18-06-2009, 14:08 Twitt ::
Claudiu
*


Mesaje: 1543
OfflineOffline

WWW

Beziers rule! (Foarte utile in game dev acolo unde este cazul Winking ) Astept codul hee hee
Logged

18-06-2009, 16:33 Twitt ::
Th3 P!mp
*


Mesaje: 253
OfflineOffline


Code:
package
{
import flash.display.*;
import flash.events.*;

public class Main extends MovieClip
{
var points:Array;
var degree2Arr:Array = new Array()
var t:Number = 0.0; // de facut intre 0 si 1 ... sau 0% 100% :P
var num:int = 5;
var canContinue:Boolean = true;
var gRotation:Number = 0;
public function Main()
{
points = new Array();

for(var i:int = 0; i<num; i++)
{
var dot:Dot = new Dot();
dot.x = Math.random()*stage.stageWidth;
dot.y = Math.random()*stage.stageHeight;
dot.dotNumber.text = String(i+1);
addChild(dot);
points.push(dot);
}

addEventListener(Event.ENTER_FRAME, movePoints);
}

public function movePoints(ev:*):void
{
//if(degree2Arr.length != 0)
//while(degree2Arr.length != 0)
//removeChild(degree2Arr[0]);
if(!canContinue) return;

var total:int = num;
/* INCARC PUNCTELE ... */
for(var k=0; k<total; k++)
degree2Arr[k] = points[k];
/* INCEP SA CALCULEZ */
for(var q=total-1; q>0; q--)
for(var v:int = 0; v<q; v++)
{
var X = degree2Arr[v].x + (degree2Arr[v+1].x - degree2Arr[v].x)*t;
var Y = degree2Arr[v].y + (degree2Arr[v+1].y - degree2Arr[v].y)*t;
var i:Intermediar = new Intermediar();
i.x = X;
i.y = Y;
degree2Arr[v] = i;
}

addChild(degree2Arr[0]);
gRotation += 1;
if(t<=1)
t+= 0.003;
else
canContinue = false;
}
}
}

am vrut sa il mai modific sa ii mai adaug cate ceva ... da ma f*** o lene de numa numa  Big grin rolling on the floor

EDIT: pentru a trece in 3D pur si simplu trebuie adaugata a 3-a dimensiune (Z) ... am tinut sa editez pentru ca initial m-am gandit(poate chiar si altii) ca trebuie calculat pe perechi de coordonate dupa care va trebui pus x,y si z ... dar dupa mai multe experimente la lucru' am observat ca merge pe toate cele 3 coordonate odata
Logged
19-06-2009, 09:18 Twitt ::
Pagini: [1]
Print
SkullBox Forum  |  Development  |  Programe facute de userii forumului  |  Topic: Cool Bezier