Je cherche une applet java pour intégrer sur un site qui permettrait d'afficher dans un espace 3d des points et éventuellement des liens entre ces points.
pas besoin de texture etc, juste des points et des lignes pour l'instant
for(int mb=0;mb<=nb_visible;mb++)
{
int t=tri[mb];
int A=(faces[t][0]);
int B=(faces[t][1]);
int C=(faces[t][2]);
int lint1=(int)(64*(pnxr[A]*lumx+pnyr[A]*lumy+pnzr[A]*lumz)/(normelumiere*pnn[A]));
int lint2=(int)(64*(pnxr[B]*lumx+pnyr[B]*lumy+pnzr[B]*lumz)/(normelumiere*pnn[B]));
int lint3=(int)(64*(pnxr[C]*lumx+pnyr[C]*lumy+pnzr[C]*lumz)/(normelumiere*pnn[C]));
int X1 = Pt2D_x[A];//x
int Y1 = Pt2D_y[A];//y
int R1 = rouge[t]-lint1;
int V1 = vert[t]-lint1;
int B1 = bleu[t]-lint1;
int X2 = Pt2D_x[B];//x
int Y2 = Pt2D_y[B];//y
int R2 = rouge[t]-lint2;
int V2 = vert[t]-lint2;
int B2 = bleu[t]-lint2;
int X3 = Pt2D_x[C];//x
int Y3 = Pt2D_y[C];//y
int R3 = rouge[t]-lint3;
int V3 = vert[t]-lint3;
int B3 = bleu[t]-lint3;
if (R1<=0){R1=0;};if (R1>=255){R1=255;}
if (V1<=0){V1=0;};if (V1>=255){V1=255;}
if (B1<=0){B1=0;};if (B1>=255){B1=255;}
if (R2<=0){R2=0;};if (R2>=255){R2=255;}
if (V2<=0){V2=0;};if (V2>=255){V2=255;}
if (B2<=0){B2=0;};if (B2>=255){B2=255;}
if (R3<=0){R3=0;};if (R3>=255){R3=255;}
if (V3<=0){V3=0;};if (V3>=255){V3=255;}
if (B3<=0){B3=0;};if (B3>=255){B3=255;}
PolyLine_gourraud(X1,Y1,R1,V1,B1,X2,Y2,R2,V2,B2);
PolyLine_gourraud(X2,Y2,R2,V2,B2,X3,Y3,R3,V3,B3);
PolyLine_gourraud(X3,Y3,R3,V3,B3,X1,Y1,R1,V1,B1);
for (int i=0;i<my_size_y;i++) // Now draw the horizontal line list
if (startx[i]!=INFINI) // Indicates there is a line on this row
{
if (endx[i]==INFINI)
endx[i]=startx[i]; // In case there was only one
if(startx[i]<endx[i])
HlineGouraud(startx[i],startR[i],startV[i],startB[i],endx[i],endR[i],endV[i],endB[i],i);
else
HlineGouraud(endx[i],endR[i],endV[i],endB[i],startx[i],startR[i],startV[i],startB[i],i);
}
for (int z=0;z<my_size_y;z++){startx[z]=INFINI;endx[z]=INFINI;}
}
Le source de (HlineGouraud) : /****************************************************************************/
/* HlineGouraud() : trace une ligne horizontale en interpolant la couleur */
/* entre les points de debut et de fin de la ligne */
/****************************************************************************/
void HlineGouraud(int x1,int R,int V,int B,int x2,int R2,int V2,int B2,int y)
{
int tmp,difx,x;
int nbcoulR,nbcoulV,nbcoulB;
int couleurR,couleurV,couleurB;
int pasR,pasV,pasB;
if(x2<x1){// inverse x1 & x2 & color1 & color2
tmp=x1;x1=x2;x2=tmp;
tmp=R;R=R2;R2=tmp;
tmp=V;V=V2;V2=tmp;
tmp=B;B=B2;B2=tmp;
}
difx=x2-x1+1;
nbcoulR=R2-R+1; nbcoulV=V2-V+1; nbcoulB= B2-B+1;
couleurR=R<<8; couleurV=V<<8; couleurB=B<<8;
pasR=(nbcoulR<<8)/difx; pasV=(nbcoulV<<8)/difx; pasB=(nbcoulB<<8)/difx;
for(x=x1;x<=x2;x++)
{
if(x>=0 && x<my_size_x)
g2.setColor(new Color(couleurR>>8,couleurV>>8,couleurB>>8));
g2.drawLine(x,y,x,y);
couleurR+=pasR;couleurV
void HlineGouraud(int x1,int R,int V,int B,int x2,int R2,int V2,int B2,int y)Mais ça rame autand...
{
for(int x=x1;x<=x2;x++)
{
g2.setColor(new Color(R,V,B));
g2.drawLine(x,y,x,y);
} }
vire carrement l'appel a HlineGouraud dans la fct de remplissage de polys, affiche que les bords... ca rame tjrs autant?
Si quelqu'un peut m'aider, je cherche ce qui ne va pas dans ce code: import java.applet.*;
import java.awt.*;
import java.awt.image.*;
public class Animation extends java.applet.Applet
{
private Thread runner = null;
int size_x=300, size_y=300;
int [] pixels; // pixels array
MemoryImageSource buffer;// MemoryImageSource
Image backImage; // back Image
public void init()
{
pixels=new int[size_x*size_y]; // Init pixels array
buffer=new MemoryImageSource(size_x, size_y, pixels, 0, size_x);
}
public void paint(Graphics g)
{
for (int i=0;i<size_x*size_y;i++) {pixels[i] =255<<16 | 20<<8 | 10;}//rempli l'image en rouge
backImage = createImage(buffer);
g.drawImage(backImage, 0, 0, this);
}
public v
Microbug :
Je cherche une applet java pour intégrer sur un site qui permettrait d'afficher dans un espace 3d des points et éventuellement des liens entre ces points.
pas besoin de texture etc, juste des points et des lignes pour l'instant