begin process at 2010 02 10 02:42:12
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

DirectX / OpenGL

 > VECTEUR 3D - ROTATION DANS L'ESPACE ET COORDONNÉES POLAIRES

VECTEUR 3D - ROTATION DANS L'ESPACE ET COORDONNÉES POLAIRES


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :DirectX / OpenGL Source .NET ( DotNet ) Classé sous :vecteur, 3d, polaire, rotation, directx Niveau :Initié Date de création :05/11/2005 Date de mise à jour :30/11/2005 02:18:14 Vu / téléchargé :21 120 / 961

Auteur : badrbadr

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Salut tout le monde,
Ce programme montre comment tracer un vecteur, et comment tracer un plan qui lui est perpendiculaire (le petit carré)
Pour y arriver, j'utilise les coordonnées polaires (longitude et latitude) ainsi que la multiplication par les matrices de rotation

Le code source est simple et bien structuré (selon moi ;)
j'espère que vous aller apprecier

Je tiens à remercier mon père qui a donné généreusement de son temps pour le débogage de cette application qui semblait vouée à l'échec :p

Source

  • using System;
  • using System.Drawing;
  • using Microsoft.DirectX;
  • using Microsoft.DirectX.Direct3D;
  • namespace tube3d
  • {
  • public class directxGestion
  • {
  • //device pour l'affichage
  • private Device device = null;
  • //handle sur la surface d'affichage
  • private IntPtr handle;
  • //buffer de vecteur pour les axes x, y, z
  • private VertexBuffer axes = null;
  • //buffer de vecteur pour le carré
  • private VertexBuffer square = null;
  • //buffer de vecteur pour le vecteur
  • private VertexBuffer vecteur = null;
  • public int x1=0, y1=0, z1=0;
  • public int x2=0, y2=0, z2=4;
  • public int cameraX = 2, cameraY = 2, cameraZ = 5;
  • private double latitude = Math.PI/2, longitude = 0;
  • private float[,] squarePoints = new float[4,3] {{-2,2,0},{2,2,0},{-2,-2,0},{2,-2,0}};
  • #region CustomVertex
  • const VertexFormats customVertexFormat = VertexFormats.Position | VertexFormats.Diffuse | VertexFormats.Texture1;
  • private struct CustomVertex
  • {
  • public float X;
  • public float Y;
  • public float Z;
  • public int color;
  • public float tu;
  • public float tv;
  • }
  • private CustomVertex CreateVertex(float x, float y, float z, float tu, float tv, int color)
  • {
  • CustomVertex custVertex = new CustomVertex();
  • custVertex.X = x; custVertex.Y = y; custVertex.Z = z;
  • custVertex.color = color;
  • custVertex.tu = tu; custVertex.tv = tv;
  • return custVertex;
  • }
  • #endregion
  • public directxGestion(IntPtr handle)
  • {
  • this.handle = handle;
  • }
  • #region InitDevice
  • public bool InitDevice(bool fullscreen)
  • {
  • DisplayMode DispMode = Manager.Adapters[Manager.Adapters.Default.Adapter].CurrentDisplayMode;
  • PresentParameters presentParams = new PresentParameters();
  • if(fullscreen) {presentParams.BackBufferFormat = DispMode.Format; presentParams.BackBufferWidth = DispMode.Width; presentParams.BackBufferHeight = DispMode.Height;}
  • //on veut que notre device supporte la profondeur
  • presentParams.AutoDepthStencilFormat = DepthFormat.D16;
  • presentParams.EnableAutoDepthStencil = true;
  • //mode fenetre
  • if(!fullscreen) presentParams.Windowed = true;
  • //mode de switchage de buffer
  • presentParams.SwapEffect = SwapEffect.Discard;
  • //attendre la synchronisation avec l'ecran (VSync)
  • //utiliser PresentInterval.Immediate pour des vitesses rapides
  • presentParams.PresentationInterval = PresentInterval.One;
  • try
  • {
  • //on crée le device selon les paramètres de présentation si-dessus
  • if(fullscreen) device = new Device(Manager.Adapters.Default.Adapter, DeviceType.Hardware, this.handle, CreateFlags.SoftwareVertexProcessing, presentParams);
  • else device = new Device(Manager.Adapters.Default.Adapter, DeviceType.Hardware, this.handle, CreateFlags.SoftwareVertexProcessing, presentParams);
  • //on lui associe notre format de vecteur spécial
  • device.VertexFormat = customVertexFormat;
  • //on active le z-buffer
  • device.RenderState.ZBufferEnable = false;
  • //pas de culling
  • device.RenderState.CullMode = Cull.None;
  • //mode de remplissage des polygones (ici solide)
  • device.RenderState.FillMode = FillMode.Solid;
  • //pas de lumière
  • device.RenderState.Lighting = false;
  • //activation de l'alpha blending
  • device.RenderState.AlphaBlendEnable = true;
  • device.RenderState.DestinationBlend = Blend.DestinationAlpha;
  • device.RenderState.SourceBlend = Blend.SourceAlpha;
  • //on définit le mode de projection
  • device.Transform.Projection = Matrix.OrthoLH(20,20,100,-100);
  • //on positionne la caméra
  • device.Transform.View = Matrix.LookAtLH(new Vector3(-cameraX,-cameraY,-cameraZ), new Vector3(0,0,0), new Vector3(0,1,0));
  • }
  • catch
  • {
  • return false;
  • }
  • return true;
  • }
  • #endregion
  • #region Initialisation des vertexBuffer
  • #region InitBuffers
  • public void InitBuffers()
  • {
  • //on crée les buffers qui va contenir nos vecteurs
  • axes = new VertexBuffer(typeof(CustomVertex), 6, device, Usage.WriteOnly, customVertexFormat, Pool.Default);
  • square = new VertexBuffer(typeof(CustomVertex), 4, device, Usage.WriteOnly, customVertexFormat, Pool.Default);
  • vecteur = new VertexBuffer(typeof(CustomVertex), 2, device, Usage.WriteOnly, customVertexFormat, Pool.Default);
  • //on associe à une fonction, la création de notre buffer
  • //au cas qu'il soit perdu
  • axes.Created += new EventHandler(this.CreateAxes);
  • square.Created += new EventHandler(this.CreateSquare);
  • vecteur.Created += new EventHandler(this.CreateVector);
  • //on force la création du buffer
  • CreateAxes(axes, null);
  • CreateSquare(square, null);
  • CreateVector(vecteur, null);
  • }
  • #endregion
  • #region creation des 3 axes
  • private void CreateAxes(object sender, EventArgs e)
  • {
  • CustomVertex[] verts = new CustomVertex[6];
  • //axe des x
  • verts[0] = CreateVertex(0,0,0,0,0, Color.FromArgb(100, Color.LightBlue).ToArgb());
  • verts[1] = CreateVertex(10,0,0,0,0, Color.FromArgb(100, Color.LightBlue).ToArgb());
  • //axe des y
  • verts[2] = CreateVertex(0,0,0,0,0, Color.FromArgb(100, Color.LightGreen).ToArgb());
  • verts[3] = CreateVertex(0,10,0,0,0, Color.FromArgb(100, Color.LightGreen).ToArgb());
  • //axe des z
  • verts[4] = CreateVertex(0,0,0,0,0, Color.FromArgb(100, Color.Red).ToArgb());
  • verts[5] = CreateVertex(0,0,20,0,0, Color.FromArgb(100, Color.Red).ToArgb());
  • axes.SetData(verts, 0, LockFlags.None);
  • }
  • #endregion
  • #region creation du carré
  • private void CreateSquare(object sender, EventArgs e)
  • {
  • CustomVertex[] verts = new CustomVertex[4];
  • float x=0, y=0, z=0;
  • float x1=0, y1=0, z1=0;
  • Matrix rotX = Matrix.RotationX((float)(latitude-Math.PI/2));
  • Matrix rotY = Matrix.RotationY((float)longitude);
  • for(int i=0; i<4; i++)
  • {
  • x1 = squarePoints[i,0] * rotX.M11 + squarePoints[i,1] * rotX.M21 + squarePoints[i,2] * rotX.M31;
  • y1 = squarePoints[i,0] * rotX.M12 + squarePoints[i,1] * rotX.M22 + squarePoints[i,2] * rotX.M32;
  • z1 = squarePoints[i,0] * rotX.M13 + squarePoints[i,1] * rotX.M23 + squarePoints[i,2] * rotX.M33;
  • x = x1 * rotY.M11 + y1 * rotY.M21 + z1 * rotY.M31;
  • y = x1 * rotY.M12 + y1 * rotY.M22 + z1 * rotY.M32;
  • z = x1 * rotY.M13 + y1 * rotY.M23 + z1 * rotY.M33;
  • x+=this.x1; y+=this.y1; z+=this.z1;
  • verts[i] = CreateVertex(x,y,z,0,0, Color.FromArgb(150, Color.White).ToArgb());
  • }
  • square.SetData(verts, 0, LockFlags.None);
  • }
  • #endregion
  • #region creation du vecteur
  • private void CreateVector(object sender, EventArgs e)
  • {
  • CustomVertex[] verts = new CustomVertex[2];
  • verts[0] = CreateVertex(x1,y1,z1,0,0, Color.FromArgb(255, Color.Yellow).ToArgb());
  • verts[1] = CreateVertex(x2,y2,z2,0,0, Color.FromArgb(255, Color.Yellow).ToArgb());
  • vecteur.SetData(verts, 0, LockFlags.None);
  • }
  • #endregion
  • #endregion
  • #region Render
  • public void Render()
  • {
  • if(device==null) return;
  • //on efface l'écran et le z-buffer
  • device.Clear(ClearFlags.Target|ClearFlags.ZBuffer, Color.Black, 1.0f, 0);
  • //on commence la scène
  • device.BeginScene();
  • //-----------------------------------------------------
  • device.SetStreamSource(0, axes, 0);
  • device.DrawPrimitives(PrimitiveType.LineList, 0, 3);
  • //-----------------------------------------------------
  • //this.RotationMatrices((int)(this.latitude*180/Math.PI), (int)(this.longitude*180/Math.PI), 0);
  • device.SetStreamSource(0, square, 0);
  • device.DrawPrimitives(PrimitiveType.TriangleStrip, 0, 2);
  • //device.Transform.World = Matrix.Identity;
  • //-----------------------------------------------------
  • device.SetStreamSource(0, vecteur, 0);
  • device.DrawPrimitives(PrimitiveType.LineList, 0, 1);
  • //on termine le dessin
  • device.EndScene();
  • //on l'affiche à l'écran
  • try{device.Present();}
  • catch{}
  • using(Graphics g = Graphics.FromHwnd(this.handle))
  • {
  • string str = string.Format("latitude :\t\t{0} degré(s)\nlongitude :\t{1} degré(s)", Math.Round(latitude*180/Math.PI, 0), Math.Round(longitude*180/Math.PI, 0));
  • g.DrawString(str, new System.Drawing.Font(FontFamily.GenericSansSerif, 12), new SolidBrush(Color.White), new Point(0,0));
  • }
  • }
  • #endregion
  • public void Invalidate()
  • {
  • int x = x2 - x1; int y = y2 - y1; int z = z2 - z1;
  • this.latitude = Math.Atan2(Math.Sqrt(x*x+z*z), y);
  • this.longitude = Math.Atan2(x, z);
  • this.CreateVector(null, null);
  • this.CreateSquare(null, null);
  • }
  • public void SetCamera()
  • {
  • device.Transform.View = Matrix.LookAtLH(new Vector3(-cameraX,-cameraY,-cameraZ), new Vector3(0,0,0), new Vector3(0,1,0));
  • }
  • }
  • }
using System;
using System.Drawing;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;


namespace tube3d
{
public class directxGestion
{
//device pour l'affichage
private Device device = null;
//handle sur la surface d'affichage
private IntPtr handle;
//buffer de vecteur pour les axes x, y, z
private VertexBuffer axes = null;
//buffer de vecteur pour le carré
private VertexBuffer square = null;
//buffer de vecteur pour le vecteur
private VertexBuffer vecteur = null;
public int x1=0, y1=0, z1=0;
public int x2=0, y2=0, z2=4;
public int cameraX = 2, cameraY = 2, cameraZ = 5;
private double latitude = Math.PI/2, longitude = 0;
private float[,] squarePoints = new float[4,3] {{-2,2,0},{2,2,0},{-2,-2,0},{2,-2,0}};



#region CustomVertex
const VertexFormats customVertexFormat = VertexFormats.Position | VertexFormats.Diffuse | VertexFormats.Texture1;
private struct CustomVertex 
{
	public float X;
	public float Y;
	public float Z;
	public int color;			
	public float tu;
	public float tv;
}
private CustomVertex CreateVertex(float x, float y, float z, float tu, float tv, int color)
{
	CustomVertex custVertex = new CustomVertex();
	custVertex.X = x; custVertex.Y = y; custVertex.Z = z;
	custVertex.color = color;
	custVertex.tu = tu; custVertex.tv = tv;
	return custVertex;
}
#endregion

public directxGestion(IntPtr handle)
{
	this.handle = handle;			
}

#region InitDevice
public bool InitDevice(bool fullscreen)
{
	DisplayMode DispMode = Manager.Adapters[Manager.Adapters.Default.Adapter].CurrentDisplayMode;
	PresentParameters presentParams = new PresentParameters();
	if(fullscreen) {presentParams.BackBufferFormat = DispMode.Format; presentParams.BackBufferWidth = DispMode.Width; presentParams.BackBufferHeight = DispMode.Height;}
	
	//on veut que notre device supporte la profondeur
	presentParams.AutoDepthStencilFormat = DepthFormat.D16;
	presentParams.EnableAutoDepthStencil = true;

	//mode fenetre
	if(!fullscreen) presentParams.Windowed = true;
	//mode de switchage de buffer
	presentParams.SwapEffect = SwapEffect.Discard;
	//attendre la synchronisation avec l'ecran (VSync)
	//utiliser PresentInterval.Immediate pour des vitesses rapides
	presentParams.PresentationInterval = PresentInterval.One;
	
	try
	{
		//on crée le device selon les paramètres de présentation si-dessus
		if(fullscreen) device = new Device(Manager.Adapters.Default.Adapter, DeviceType.Hardware, this.handle, CreateFlags.SoftwareVertexProcessing, presentParams);
		else device = new Device(Manager.Adapters.Default.Adapter, DeviceType.Hardware, this.handle, CreateFlags.SoftwareVertexProcessing, presentParams);
		//on lui associe notre format de vecteur spécial
		device.VertexFormat = customVertexFormat;
		//on active le z-buffer
		device.RenderState.ZBufferEnable = false;
		//pas de culling
		device.RenderState.CullMode = Cull.None;
		//mode de remplissage des polygones (ici solide)
		device.RenderState.FillMode = FillMode.Solid;
		//pas de lumière
		device.RenderState.Lighting = false;	
						
		//activation de l'alpha blending
		device.RenderState.AlphaBlendEnable = true;
		device.RenderState.DestinationBlend = Blend.DestinationAlpha;
		device.RenderState.SourceBlend = Blend.SourceAlpha;
		
		//on définit le mode de projection
		device.Transform.Projection = Matrix.OrthoLH(20,20,100,-100);
		//on positionne la caméra
		device.Transform.View = Matrix.LookAtLH(new Vector3(-cameraX,-cameraY,-cameraZ), new Vector3(0,0,0), new Vector3(0,1,0));
	}
	catch
	{
		return false;
	}
	
	return true;
}
#endregion

#region Initialisation des vertexBuffer
#region InitBuffers
public void InitBuffers()
{
	//on crée les buffers qui va contenir nos vecteurs
	axes = new VertexBuffer(typeof(CustomVertex), 6, device, Usage.WriteOnly, customVertexFormat, Pool.Default);
	square = new VertexBuffer(typeof(CustomVertex), 4, device, Usage.WriteOnly, customVertexFormat, Pool.Default);
	vecteur = new VertexBuffer(typeof(CustomVertex), 2, device, Usage.WriteOnly, customVertexFormat, Pool.Default);
	//on associe à une fonction, la création de notre buffer
	//au cas qu'il soit perdu
	axes.Created += new EventHandler(this.CreateAxes);
	square.Created += new EventHandler(this.CreateSquare);
	vecteur.Created += new EventHandler(this.CreateVector);
	//on force la création du buffer
	CreateAxes(axes, null);
	CreateSquare(square, null);
	CreateVector(vecteur, null);
}
#endregion
#region creation des 3 axes
private void CreateAxes(object sender, EventArgs e)
{
	CustomVertex[] verts = new CustomVertex[6];
	//axe des x
	verts[0] = CreateVertex(0,0,0,0,0, Color.FromArgb(100, Color.LightBlue).ToArgb());
	verts[1] = CreateVertex(10,0,0,0,0, Color.FromArgb(100, Color.LightBlue).ToArgb());
	//axe des y
	verts[2] = CreateVertex(0,0,0,0,0, Color.FromArgb(100, Color.LightGreen).ToArgb());
	verts[3] = CreateVertex(0,10,0,0,0, Color.FromArgb(100, Color.LightGreen).ToArgb());
	//axe des z
	verts[4] = CreateVertex(0,0,0,0,0, Color.FromArgb(100, Color.Red).ToArgb());
	verts[5] = CreateVertex(0,0,20,0,0, Color.FromArgb(100, Color.Red).ToArgb());
	axes.SetData(verts, 0, LockFlags.None);
}
#endregion
#region creation du carré
private void CreateSquare(object sender, EventArgs e)
{
	CustomVertex[] verts = new CustomVertex[4];
	float x=0, y=0, z=0;
	float x1=0, y1=0, z1=0;
	Matrix rotX = Matrix.RotationX((float)(latitude-Math.PI/2));
	Matrix rotY = Matrix.RotationY((float)longitude);
	for(int i=0; i<4; i++)
	{
		x1 = squarePoints[i,0] * rotX.M11 + squarePoints[i,1] * rotX.M21 + squarePoints[i,2] * rotX.M31;
		y1 = squarePoints[i,0] * rotX.M12 + squarePoints[i,1] * rotX.M22 + squarePoints[i,2] * rotX.M32;
		z1 = squarePoints[i,0] * rotX.M13 + squarePoints[i,1] * rotX.M23 + squarePoints[i,2] * rotX.M33;
			x = x1 * rotY.M11 + y1 * rotY.M21 + z1 * rotY.M31;
			y = x1 * rotY.M12 + y1 * rotY.M22 + z1 * rotY.M32;
			z = x1 * rotY.M13 + y1 * rotY.M23 + z1 * rotY.M33;
		x+=this.x1; y+=this.y1; z+=this.z1;
		verts[i] = CreateVertex(x,y,z,0,0, Color.FromArgb(150, Color.White).ToArgb());
		
	}
	square.SetData(verts, 0, LockFlags.None);
}
#endregion
#region creation du vecteur
private void CreateVector(object sender, EventArgs e)
{
	CustomVertex[] verts = new CustomVertex[2];
	verts[0] = CreateVertex(x1,y1,z1,0,0, Color.FromArgb(255, Color.Yellow).ToArgb());
	verts[1] = CreateVertex(x2,y2,z2,0,0, Color.FromArgb(255, Color.Yellow).ToArgb());
	vecteur.SetData(verts, 0, LockFlags.None);
}
#endregion
#endregion

#region Render
public void Render()
{
	if(device==null) return;
	
	
	//on efface l'écran et le z-buffer
	device.Clear(ClearFlags.Target|ClearFlags.ZBuffer, Color.Black, 1.0f, 0);
	//on commence la scène
	device.BeginScene();
	//-----------------------------------------------------
	device.SetStreamSource(0, axes, 0);
		device.DrawPrimitives(PrimitiveType.LineList, 0, 3);
	//-----------------------------------------------------
	//this.RotationMatrices((int)(this.latitude*180/Math.PI), (int)(this.longitude*180/Math.PI), 0);
	device.SetStreamSource(0, square, 0);
		device.DrawPrimitives(PrimitiveType.TriangleStrip, 0, 2);
	//device.Transform.World = Matrix.Identity;
	//-----------------------------------------------------
	device.SetStreamSource(0, vecteur, 0);
		device.DrawPrimitives(PrimitiveType.LineList, 0, 1);
	//on termine le dessin
	device.EndScene();
	//on l'affiche à l'écran
	try{device.Present();}
	catch{}
	using(Graphics g = Graphics.FromHwnd(this.handle))
	{
		string str = string.Format("latitude :\t\t{0} degré(s)\nlongitude :\t{1} degré(s)", Math.Round(latitude*180/Math.PI, 0), Math.Round(longitude*180/Math.PI, 0));
		g.DrawString(str, new System.Drawing.Font(FontFamily.GenericSansSerif, 12), new SolidBrush(Color.White), new Point(0,0));
	}
}
#endregion
public void Invalidate()
{
	int x = x2 - x1; int y = y2 - y1; int z = z2 - z1;
	this.latitude = Math.Atan2(Math.Sqrt(x*x+z*z), y);
	this.longitude = Math.Atan2(x, z);
	this.CreateVector(null, null);
	this.CreateSquare(null, null);
}
public void SetCamera()
{
	device.Transform.View = Matrix.LookAtLH(new Vector3(-cameraX,-cameraY,-cameraZ), new Vector3(0,0,0), new Vector3(0,1,0));
}

}
}

 Conclusion

vous devez avoir DirectX 9.0c
les DLL pour le managed DirectX sont inclus
si vous rencontrez des problèmes, faites moi signe.


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

05 novembre 2005 08:13:25 :
extension .exe_
05 novembre 2005 21:12:09 :
J'ai mis une partie du code source
30 novembre 2005 02:18:14 :
ajout de mots-clés

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) RESOURCEBINDER : INJECTER ET EXTRAIRE DES RESSOURCES
Source .NET (Dotnet) CONVERSION ASCII-8 - BINAIRE
Source .NET (Dotnet) SQLMANAGER : FACILITE L'ACCÈS À UNE BASE DE DONNÉE MS SQL
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTAGE PRÉDÉFINI ET PERSONNALISÉ GRÂCE À LA COMPILATION DY...
Source avec Zip Source avec une capture Source .NET (Dotnet) PACMAN : ÉDITEUR DE NIVEAU

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) 3VE-WALKER par jyce3d
Source avec Zip Source avec une capture Source .NET (Dotnet) IMAGINE: BASE D'UN MOTEUR 3D DIRECTX par Children
Source avec Zip Source avec une capture Source .NET (Dotnet) DIRECTX OVERLAY - CHANGE WALLPAPER ON DESKTOP WITH DIRECTX par youpiyoyo
Source avec une capture Source .NET (Dotnet) SE SERVIR D'UNE MANETTE OU JOYSTICK par soussous78
Source avec Zip Source avec une capture Source .NET (Dotnet) MOVIE PLAYER (MANAGED DIRECTX) par Zap

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) EXEMPLE PROJECTION 3D SILVERLIGHT 3 par silverressources
Source avec Zip Source avec une capture Source .NET (Dotnet) EXPLORATION DE LABYRINTHE 3D par damned3
Source avec Zip Source avec une capture Source .NET (Dotnet) BOX3D - DIRECTX 9 par damned3
Source avec Zip Source avec une capture Source .NET (Dotnet) DÉBUT DE JEU D'ÉCHECS EN 3D AVEC DIRECTX par bubbathemaster
Source avec Zip Source avec une capture Source .NET (Dotnet) CUBE3D AVEC DIRECT3D + TEXTURE ET ALPHA BLENDING par badrbadr

Commentaires et avis

Commentaire de Gefkuz le 01/08/2006 23:14:00

Ce code a l'air tres interressant, mais il ne fonctionne pas sous visual 8...

Commentaire de survcopt le 19/11/2008 14:27:42

Excellent ton code , j'ai commencé à le lire plus en détail
comment je peux rajouter une boule à l'origine et remplacer le vecteur par une flèche (cylindre + cône)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Problème sous DIRECTX [ par Lord_ZanTe ] Bonjour,nous sommes &#233;tudiant et nous d&#233;veloppons un jeu 3D sous DirectX, en C# dans le cadre d'un projet tuteur&#233;.Nous arrivons &#224; a Vecteur et direct3D [ par cazaux ] Bonjour, je suis en train de réaliser un moteur 3D en direct3D et C# seulement je manque de connaissance en géométrie dans l'espace.Actuellement j'ai Direct 3d [ par abdoulax ] Bon b voila je voudrai essayé de faire une application en direct 3d mais le problème c'est que lorsque je compile ça me di kil ne trouve pas la dll di Représentation graphique d'une fonction en 3d [ par Fildomen ] Bonjour !!Svp je cherche une source d'une représentation de fonctions mathématiques en 3d (ptete directx en utilisation) !!j'ai cherché partout mais e équivalent OpenGL en DirectX ? [ par slmnsnts ] Bonjour, <p class="MsoNormal" style="MARGIN les principe de la programmation 2D et 3D avec DirectX [ par goldziko9 ] Salut tous monde.      Je suis un debutant dans le domaine de la programmation 2D et 3D. j'ai un bon niveau en programmation avec les languages : C#, rotation 3D sur page WPF... je bloque [ par waspy59 ] Bonjour au forum,Voila mon problème, j'ai crée une appli en WPF/C#. Son interface principale est composée d'une série de boutons disposés verticalemen [BAR]Premier plan et arrière plan en 3D isométrique [ par krimog ] Bonjour à tous Je poste dans le bar, car, bien que je programme dans un langage bien précis, mon problème vient de la conception et non du code. Je reference introuvable [ par dourida ] Salut J'ai un problème avec la réference Microsoft.DirectX.AudioVideoPlayback dans l'emulateur pocket pc 2003. j'ai ajouté la réference dans mon pro envoyer un code clavier à une appli directx [ par survcopt ] Bonjour, J'ai un jeu qui fonctionne avec directx, je voudrais lui envoyer un code clavier pour simuler un appui . j'ai essayé les fonctions sendkeys s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,014 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales