Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DE LA 3D FACILE


Information sur la source

Catégorie :Applet Classé sous : applet, 3d, isométrique, adjustmentlistener, scrollbar Niveau : Débutant Date de création : 04/01/2003 Date de mise à jour : 04/01/2003 04:34:02 Vu / téléchargé: 5 377 / 496

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

Description

Voila une petite applet qui fait de la 3D en un tour de chapeau...
 

Source

  • import java.awt.*;
  • import java.awt.event.*;
  • import java.applet.*;
  • public class appli3d extends Applet implements AdjustmentListener {
  • static final int N=150, X=0, Y=1, Z=2;
  • int initial=0, visible=1, min=0, max=200;
  • Scrollbar sba, sbb;
  • double[][] points;
  • double alpha, beta;
  • public void init() {
  • points=new double[N][3];
  • for (int i=0; i<N; i++) {
  • points[i][Y]=i*160.0/N-80.0;
  • double r=80-i*80.0/N;
  • double a=i*2*Math.PI/8;
  • points[i][X]=Math.cos(a)*r;
  • points[i][Z]=Math.sin(a)*r;
  • }
  • setLayout(new BorderLayout());
  • sba=new Scrollbar(Scrollbar.VERTICAL, initial, visible, min, max);
  • add(sba, BorderLayout.WEST);
  • sba.addAdjustmentListener(this);
  • sbb=new Scrollbar(Scrollbar.HORIZONTAL, initial, visible, min, max);
  • add(sbb, BorderLayout.SOUTH);
  • sbb.addAdjustmentListener(this);
  • }
  • public void paint(Graphics g) {
  • double x,y,z;
  • int xp=0, yp=0;
  • g.setColor(Color.red);
  • for (int i=0;i<N;i++) {
  • x=points[i][X]*Math.cos(alpha)-points[i][Y]*Math.sin(alpha);
  • y=points[i][X]*Math.sin(alpha)+points[i][Y]*Math.cos(alpha);
  • z=points[i][Z];
  • x=x*Math.cos(beta)-z*Math.sin(beta);
  • z=x*Math.sin(beta)+z*Math.cos(beta);
  • if (i>0) g.drawLine(xp,yp,(int)x+150,(int)y+150);
  • xp=(int)x+150; yp=(int)y+150;
  • }
  • }
  • public void adjustmentValueChanged(AdjustmentEvent e) {
  • if (e.getSource()==sba) alpha=e.getValue()*2*Math.PI/100;
  • if (e.getSource()==sbb) beta=e.getValue()*2*Math.PI/100;
  • repaint();
  • }
  • }
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class appli3d extends Applet implements AdjustmentListener {
	
	static final int N=150, X=0, Y=1, Z=2;
	
	int initial=0, visible=1, min=0, max=200;
	Scrollbar sba, sbb;
	double[][] points;
	double alpha, beta;
	
	public void init() {
		points=new double[N][3];
		
		for (int i=0; i<N; i++) {
			points[i][Y]=i*160.0/N-80.0;
			double r=80-i*80.0/N;
			double a=i*2*Math.PI/8;
			points[i][X]=Math.cos(a)*r;
			points[i][Z]=Math.sin(a)*r;
		}
		
		setLayout(new BorderLayout());
		
		sba=new Scrollbar(Scrollbar.VERTICAL, initial, visible, min, max);
		add(sba, BorderLayout.WEST);
		sba.addAdjustmentListener(this);

		sbb=new Scrollbar(Scrollbar.HORIZONTAL, initial, visible, min, max);
		add(sbb, BorderLayout.SOUTH);
		sbb.addAdjustmentListener(this);
		
	}
	
	public void paint(Graphics g) {
		double x,y,z;
		int xp=0, yp=0;
		
		g.setColor(Color.red);
		for (int i=0;i<N;i++) {
			x=points[i][X]*Math.cos(alpha)-points[i][Y]*Math.sin(alpha);
			y=points[i][X]*Math.sin(alpha)+points[i][Y]*Math.cos(alpha);
			z=points[i][Z];
			
			x=x*Math.cos(beta)-z*Math.sin(beta);
			z=x*Math.sin(beta)+z*Math.cos(beta);
			
			if (i>0) g.drawLine(xp,yp,(int)x+150,(int)y+150);
			xp=(int)x+150; yp=(int)y+150;
		}
	}
	
	public void adjustmentValueChanged(AdjustmentEvent e) {
		if (e.getSource()==sba) alpha=e.getValue()*2*Math.PI/100;
		if (e.getSource()==sbb) beta=e.getValue()*2*Math.PI/100;
		repaint();
	}
	
}

Conclusion

C bo !
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de JHelp le 04/01/2003 11:11:00

Pas mal du tout.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Lancement d'une Applet [ par syndrael ] Bonjour,J'essaie de lancer une Applet depuis un navigateur sur mon ordinateur et j'obtiens sous IE:load: (Nom_Applet) can't be instantiated.et sur NS: Envoyer un message a un autre client via un applet [ par sarani ] Je veux faire un applet qui permettra a deux client connecté sur le meme site de s'envoyer des messages via un applets en temps reel( comme dans le di Rafraichissement d'Item dans une Applet [ par wylolo ] Bonjour, j'ai créé une applet constituée d'un Panel et d'un CanvaLe Panel est composé de 3 objets Choice (listes déroulantes) me permettant d'affiner Afficher une popup dans une applet [ par Nabel ] Voilà mon problème : je dessine une courbe dans une applet, et j'aimerais que, quand on passe sur un point de la courbe, sa valeur s'affiche (dans un MouseListener sur des boutons dans une applet [ par Nabel ] voilà mon pb : j'ai une applet dans la quelle j'ai mis des boutons et j'aimerai que quelquechose s'affiche lors je passe ma souris sur le bouton.Je sa Applet loading ... [ par olba ] Bonjour, est-ce quelqu'un sait s'il est posssible de modifier lors du chargement d'une Applet ...- La couleur grise du fond !- Le texte 'Applet Load chargement applet netscape [ par kramp ] lorsque je lance l'applet que j'ai créé avec appletviewer, il n'y a pa de probleme, il fonctionne correctement.Si je veux ouvrir ma page dans netscape applet + servlet + redirection [ par chris90 ] BonjourJ'ai une applet qui réalise un HTTP Tunneling(URLConnection,....) vers une Servlet (serveur Tomcat ). La servlet traite les infos transmises pa Applet Irc [ par mercutio ] Salut à tousVoilà, chuis nouveau en ce qui concerne le langage Java.J'aimerai créer une ptite applet bien sympas qui se connectera sur un canal ircPou Pb avec Graphics2D [ par Nabel ] Bonjour,Voilà mon problème : lorsque j'utilise la classe Graphics2d de java.awt.Graphics2D, mon applet ne s'affiche pas. Mon code est pourtant tout si


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.