Accueil > > > GLSCENE : CRÉER DEUX OBJETS DE TYPE SPHÈRE EN 3D, INSÉRER UNE TEXTURE SUR UN OBJET ET JOUER AVEC LA CAMÉRA
GLSCENE : CRÉER DEUX OBJETS DE TYPE SPHÈRE EN 3D, INSÉRER UNE TEXTURE SUR UN OBJET ET JOUER AVEC LA CAMÉRA
Information sur la source
Description
GLScene créé par Mile Lischke, est une bibliothèque 3D pour Delphi (à partir de la version 4) basée sur OpenGL. GLScene regroupe un ensemble de composants permettant rapidement de concevoir des objets et des scènes en trois dimensions. Le programme consiste à montrer les points suivants : - Création d'objets 3D - Mettre une texture sur un objet - Jouer avec la caméra
Source
-
- unit Unit1;
-
- //Programmé par Yoann
- //http://delphipage.free.fr/
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- GLScene, GLObjects, GLMisc, GLWin32Viewer, Math, Jpeg;
-
- type
- TForm1 = class(TForm)
- GLSceneViewer1: TGLSceneViewer;
- GLScene1: TGLScene;
- GLCamera1: TGLCamera;
- DummyCube1: TDummyCube;
- Sphere1: TSphere;
- GLLightSource1: TGLLightSource;
- Sphere2: TSphere;
- procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
- WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
- procedure GLSceneViewer1MouseDown(Sender: TObject;
- Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
- procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
- X, Y: Integer);
- private
- { Déclarations privées }
- CoordX,CoordY:Integer;
- public
- { Déclarations publiques }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.DFM}
-
- procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
- WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
- begin
- GLCamera1.AdjustDistanceToTarget(Power(1.1,WheelDelta/120)); //Modifie la distance de la vue
- end;
-
- procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject;
- Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
- begin
- //Stocke les coordonnées de la souris
- CoordX:=X;
- CoordY:=Y;
- end;
-
- procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject;
- Shift: TShiftState; X, Y: Integer);
- var dx,dy:Integer;
- begin
- //Calcule la distance entre le point lors du dernier clic et la position de la souris après avoir bouger
- dx:=CoordX-X;
- dy:=CoordY-Y;
- CoordX:=X;
- CoordY:=Y;
- if ssLeft in Shift then //Si l'utilisateur utilise le bouton gauche de la souris alors...
- GLCamera1.MoveAroundTarget(dy,dx); //Change l'orientation de la caméra
- if ssRight in Shift then //Si il utilise le bouton droit alors...
- GLCamera1.RotateObject(Sphere1,dy,dx); //L'objet "Sphere1" subit une rotation
- end;
-
- end.
unit Unit1;
//Programmé par Yoann
//http://delphipage.free.fr/
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
GLScene, GLObjects, GLMisc, GLWin32Viewer, Math, Jpeg;
type
TForm1 = class(TForm)
GLSceneViewer1: TGLSceneViewer;
GLScene1: TGLScene;
GLCamera1: TGLCamera;
DummyCube1: TDummyCube;
Sphere1: TSphere;
GLLightSource1: TGLLightSource;
Sphere2: TSphere;
procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
procedure GLSceneViewer1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
private
{ Déclarations privées }
CoordX,CoordY:Integer;
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
GLCamera1.AdjustDistanceToTarget(Power(1.1,WheelDelta/120)); //Modifie la distance de la vue
end;
procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
//Stocke les coordonnées de la souris
CoordX:=X;
CoordY:=Y;
end;
procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var dx,dy:Integer;
begin
//Calcule la distance entre le point lors du dernier clic et la position de la souris après avoir bouger
dx:=CoordX-X;
dy:=CoordY-Y;
CoordX:=X;
CoordY:=Y;
if ssLeft in Shift then //Si l'utilisateur utilise le bouton gauche de la souris alors...
GLCamera1.MoveAroundTarget(dy,dx); //Change l'orientation de la caméra
if ssRight in Shift then //Si il utilise le bouton droit alors...
GLCamera1.RotateObject(Sphere1,dy,dx); //L'objet "Sphere1" subit une rotation
end;
end.
Conclusion
Plus d'information sur : http://delphipage.free.fr/
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[TECHDAYS 2010] WINDOWS AZURE APPFABRIC (CLO305)[TECHDAYS 2010] WINDOWS AZURE APPFABRIC (CLO305) par NeuroCypher
Les webcasts sont désormais en ligne, je me décide donc à écrire ce post. J'ai encore eu la chance d'animer une session aux TechDays cette année. Le sujet : le même que l'année dernière, ou plutôt son évolution. En effet, l'année dernière la couche de com...
Cliquez pour lire la suite de l'article par NeuroCypher OUTILS D'IMPORT AVEC MISE à JOUR DANS MICROSOFT DYNAMICS CRMOUTILS D'IMPORT AVEC MISE à JOUR DANS MICROSOFT DYNAMICS CRM par bianca
Problématique
Si vous avez besoin d'exporter sous Excel une liste de comptes ou de contacts dans le but de faire des retouches à droite à gauche puis de réinjecter le tout dans CRM, vous ne pouvez pas vous en...
Cliquez pour lire la suite de l'article par bianca SQL SERVER : DéVELOPPER UN ADDON POUR SQL SERVER MANAGEMENT STUDIO (SSMS)SQL SERVER : DéVELOPPER UN ADDON POUR SQL SERVER MANAGEMENT STUDIO (SSMS) par christian
Pour celles et ceux qui aiment SQL Server et on l'âme de développeur (ou sont tout simplement développeur) et veulent étendre les fonctionnalités de SQL Server, voici un article qui devrait pouvoir un intéresser.
Certes ce dernier est écrit sur u...
Cliquez pour lire la suite de l'article par christian EDITEUR XAML DE VISUAL STUDIO: COMMENT ALIGNER LES ATTRIBUTS LES UNS EN DESSOUS DES AUTRES AUTOMATIQUEMENTEDITEUR XAML DE VISUAL STUDIO: COMMENT ALIGNER LES ATTRIBUTS LES UNS EN DESSOUS DES AUTRES AUTOMATIQUEMENT par Miiitch
Lorsque l'on écrit du XAML, les tags XML peuvent vraiment devenir très longs et pas pratique à lire: Il y a une option vraiment pratique dans l'éditeur de Visual Studio qui va nous permettre de réorganiser tout cela en mettant les attributs XAML les uns e...
Cliquez pour lire la suite de l'article par Miiitch MIX10 A LAS VEGAS : IMMERSIONMIX10 A LAS VEGAS : IMMERSION par odewit
Hi from Vegas !
En resume [je corrigerai les accents a mon retour !], Las Vegas m'impressionne par sa demesure.
Ou que l'on aille, les itineraires traversent des salles bruyantes pleines de machines a sous et de tables de jeu.
Les decors, surtout a...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|