| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Mar 2009 Ort: NRW
Beiträge: 14
| 3D Würfel mit Bildern.
Hi, ich hab einen kleinen Code der mir einen 3D Würfel zaubert jetzt kann ich aber nur die 6 seiten des würfels farbig füllen...Ich würde gerne das flash ein paar bilder aus einem ordner in die seiten des würfels importiert und nach einer zeit die bilder wehselt per zufallsprinzip. die Bilder wären dan .jpg alle gleich groß und von 001.jpg - 999.jpg benannt. Also das mit dem zufall mus nicht unbedingt sein die Bilder können auch nacheinander wechseln, wichtig ist das sie wechseln. Hoffe mir kann jemand helfen denke mit meinem Code ist das meiste schon getan.Code:
var vertsArray:Array=[];
var facesArray:Array=[];
var fLen:Number=300;
var numVertices:uint=8;
var numFaces:uint=6;
var spBoard:Sprite=new Sprite();
this.addChild(spBoard);
spBoard.x=200;
spBoard.y=190;
var shBack:Shape=new Shape();
spBoard.addChild(shBack);
drawBack();
var shCube:Shape=new Shape();
spBoard.addChild(shCube);
var doRotate:Boolean=false;
var prevX:Number;
var prevY:Number;
var curTheta:Number=20;
var curPhi:Number=70;
var facesColors:Array=[0xFFFFff,0xffFFff,0xffffFF,0xffFFFF,0xffffff,0xffffff];
function drawBack():void {
shBack.graphics.beginFill(0x000000);
shBack.graphics.drawRect(-160,-160,320,320);
shBack.graphics.endFill();
}
setVertices();
setFaces();
renderView(curTheta,curPhi);
function setVertices():void {
vertsArray[0]=[70,-70,70];
vertsArray[1]=[70,70,70];
vertsArray[2]=[-70,70,70];
vertsArray[3]=[-70,-70,70];
vertsArray[4]=[70,-70,-70];
vertsArray[5]=[70,70,-70];
vertsArray[6]=[-70,70,-70];
vertsArray[7]=[-70,-70,-70];
}
function setFaces():void {
facesArray[0]=[0,4,5,1];
facesArray[1]=[1,5,6,2];
facesArray[2]=[2,6,7,3];
facesArray[3]=[3,7,4,0];
facesArray[4]=[4,5,6,7];
facesArray[5]=[0,1,2,3];
}
function renderView(t:Number,p:Number):void {
var i:int;
var distArray=[];
var dispArray=[];
var vertsNewArray=[];
var midPoint:Array=[];
var dist:Number;
var curFace:uint;
t=t*Math.PI/180;
p=p*Math.PI/180;
shCube.graphics.clear();
for(i=0;i<numVertices;i++){
vertsNewArray[i]=pointNewView(vertsArray[i],t,p);
}
for(i=0;i<numFaces;i++){
midPoint[0]=(vertsNewArray[facesArray[i][0]][0]+vertsNewArray[facesArray[i][1]][0]+vertsNewArray[facesArray[i][2]][0]+vertsNewArray[facesArray[i][3]][0])/4;
midPoint[1]=(vertsNewArray[facesArray[i][0]][1]+vertsNewArray[facesArray[i][1]][1]+vertsNewArray[facesArray[i][2]][1]+vertsNewArray[facesArray[i][3]][1])/4;
midPoint[2]=(vertsNewArray[facesArray[i][0]][2]+vertsNewArray[facesArray[i][1]][2]+vertsNewArray[facesArray[i][2]][2]+vertsNewArray[facesArray[i][3]][2])/4;
dist=Math.sqrt(Math.pow(fLen-midPoint[0],2)+Math.pow(midPoint[1],2)+Math.pow(midPoint[2],2));
distArray[i]=[dist,i];
}
distArray.sort(byDist);
for(i=0;i<numVertices;i++){
dispArray[i]=[fLen/(fLen-vertsNewArray[i][0])*vertsNewArray[i][1],-fLen/(fLen-vertsNewArray[i][0])*vertsNewArray[i][2]];
}
for(i=0;i<numFaces;i++){
shCube.graphics.lineStyle(1,0xCC0000);
curFace=distArray[i][1];
shCube.graphics.beginFill(facesColors[curFace],0.8);
shCube.graphics.moveTo(dispArray[facesArray[curFace][0]][0],dispArray[facesArray[curFace][0]][1]);
shCube.graphics.lineTo(dispArray[facesArray[curFace][1]][0],dispArray[facesArray[curFace][1]][1]);
shCube.graphics.lineTo(dispArray[facesArray[curFace][2]][0],dispArray[facesArray[curFace][2]][1]);
shCube.graphics.lineTo(dispArray[facesArray[curFace][3]][0],dispArray[facesArray[curFace][3]][1]);
shCube.graphics.lineTo(dispArray[facesArray[curFace][0]][0],dispArray[facesArray[curFace][0]][1]);
shCube.graphics.endFill();
}
}
function byDist(v:Array,w:Array):Number {
if (v[0]>w[0]){
return -1;
} else if (v[0]<w[0]){
return 1;
} else {
return 0;
}
}
function pointNewView(v:Array,theta:Number,phi:Number):Array {
var newCoords:Array=[];
newCoords[0]=v[0]*Math.cos(theta)*Math.sin(phi)+v[1]*Math.sin(theta)*Math.sin(phi)+v[2]*Math.cos(phi);
newCoords[1]=-v[0]*Math.sin(theta)+v[1]*Math.cos(theta);
newCoords[2]=-v[0]*Math.cos(theta)*Math.cos(phi)-v[1]*Math.sin(theta)*Math.cos(phi)+v[2]*Math.sin(phi);
return newCoords;
}
spBoard.addEventListener(MouseEvent.ROLL_OUT,boardOut);
spBoard.addEventListener(MouseEvent.MOUSE_MOVE,boardMove);
spBoard.addEventListener(MouseEvent.MOUSE_DOWN,boardDown);
spBoard.addEventListener(MouseEvent.MOUSE_UP,boardUp);
function boardOut(e:MouseEvent):void {
doRotate=false;
}
function boardDown(e:MouseEvent):void {
prevX=spBoard.mouseX;
prevY=spBoard.mouseY;
doRotate=true;
}
function boardUp(e:MouseEvent):void {
doRotate=false;
}
function boardMove(e:MouseEvent):void {
var locX:Number=prevX;
var locY:Number=prevY;
if(doRotate){
prevX=spBoard.mouseX;
prevY=spBoard.mouseY;
curTheta+=(prevX-locX);
curPhi+=(prevY-locY);
renderView(curTheta,curPhi);
e.updateAfterEvent();
}
} |
| | |
| | #2 (permalink) |
| experience++; Registriert seit: Jul 2002 Ort: Düsseldorf
Beiträge: 11.347
|
hi, mal als gegenfrage. wieso so kompliziert? muss das in as2 sein oder wieso nimmste dazu nicht eine der bekannten 3d engines? also z.B. papervision, oder away3d... ich glaube so simple dinge gehen damit sogar auch schon in as2 ![]() cheers, sal
__________________
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme! |
| | |
| | #4 (permalink) |
| experience++; Registriert seit: Jul 2002 Ort: Düsseldorf
Beiträge: 11.347
|
__________________
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme! |
| | |
| | #6 (permalink) |
| experience++; Registriert seit: Jul 2002 Ort: Düsseldorf
Beiträge: 11.347
|
diese as dateien nennt man klassen! ![]() wenn du dich mit klassen/packages gar nicht auskennst musste dich wohl zumindest ein klein bissal schlau lesen bevor es los gehen kann... gute, viele und vor allem auch schöne bsp's zu papervision findeste z.B. hier: http://pv3d.org/sitemap/ cheers, sal
__________________
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme! |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| 3d würfel, ac3, bilder, flash, galerie |
| Themen-Optionen | |
| Ansicht | |
| |