AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

 

 Voir une fonction 3d ( de la forme z = ... )

Aller en bas 
AuteurMessage
onilink_
Modérateur
onilink_

Messages : 9146
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Voir une fonction 3d ( de la forme z = ... ) Empty
MessageSujet: Voir une fonction 3d ( de la forme z = ... )   Voir une fonction 3d ( de la forme z = ... ) EmptySam 20 Déc 2008 - 17:36

Voici une fonction qui permet de visualiser une fontion 3D.
Mais le mieux c'est qu'on ne la vois pas en nuages de points mais
en facettes dont vous pouvez changer les couleurs ou textures.

Voici l'objet qui afficheras la fonction:

Create event

p = 0.2//precision
t = 4//surface

for(x=-t;x<=t+p*3;x+=p){
for(y=-t;y<=t+p*3;y+=p){

z[(x+t)*10,(y+t)*10] = sin(x)*cos(y)
}}

Draw event


draw_set_color(c_white)
for(x=-t;x<=t;x+=p*2){
for(y=-t;y<=t;y+=p*2){


d3d_primitive_begin(pr_trianglelist);c=c_white
d3d_vertex_color(x+160,y+160,z[(x+t)*10,(y+t)*10],c,1)
d3d_vertex_color(x+160,y+p+160,z[(x+t)*10,(y+p+t)*10],c,1)
d3d_vertex_color(x+p+160,y+160,z[(x+t+p)*10,(y+t)*10],c,1)

d3d_vertex_color(x+p+160,y+p+160,z[(x+t+p)*10,(y+t+p)*10],c,1)
d3d_vertex_color(x+160,y+p+160,z[(x+t)*10,(y+p+t)*10],c,1)
d3d_vertex_color(x+p+160,y+160,z[(x+t+p)*10,(y+t)*10],c,1)

d3d_vertex_color(x+160+p,y+160+p,z[(x+t+p)*10,(y+t+p)*10],c,1)
d3d_vertex_color(x+160+p,y+p+160+p,z[(x+t+p)*10,(y+p+p+t)*10],c,1)
d3d_vertex_color(x+p+160+p,y+160+p,z[(x+t+p+p)*10,(y+t+p)*10],c,1)

d3d_vertex_color(x+160+p+p,y+160+p+p,z[(x+t+p+p)*10,(y+t+p+p)*10],c,1)
d3d_vertex_color(x+160+p,y+p+160+p,z[(x+t+p)*10,(y+p+p+t)*10],c,1)
d3d_vertex_color(x+p+160+p,y+160+p,z[(x+t+p+p)*10,(y+t+p)*10],c,1)

c=c_gray
d3d_vertex_color(x+160+p,y+160,z[(x+t+p)*10,(y+t)*10],c,1)
d3d_vertex_color(x+160+p,y+p+160,z[(x+t+p)*10,(y+p+t)*10],c,1)
d3d_vertex_color(x+p+p+160,y+160,z[(x+t+p+p)*10,(y+t)*10],c,1)

d3d_vertex_color(x+p*2+160,y+p+160,z[(x+t+p*2)*10,(y+t+p)*10],c,1)
d3d_vertex_color(x+p+160,y+p+160,z[(x+t+p)*10,(y+p+t)*10],c,1)
d3d_vertex_color(x+p*2+160,y+160,z[(x+t+p*2)*10,(y+t)*10],c,1)

d3d_vertex_color(x+160,y+160+p,z[(x+t)*10,(y+t+p)*10],c,1)
d3d_vertex_color(x+160,y+p+160+p,z[(x+t)*10,(y+p+p+t)*10],c,1)
d3d_vertex_color(x+p+160,y+160+p,z[(x+t+p)*10,(y+t+p)*10],c,1)

d3d_vertex_color(x+160+p,y+160+p+p,z[(x+t+p)*10,(y+t+p+p)*10],c,1)
d3d_vertex_color(x+160,y+p+160+p,z[(x+t)*10,(y+p+p+t)*10],c,1)
d3d_vertex_color(x+p+160,y+160+p,z[(x+t+p)*10,(y+t+p)*10],c,1)
d3d_primitive_end()

}}


Pour ce qui ne savent pas encore faire de cameras en voici une
tres basique.

Create

d3d_start()
l = 12
z = 16
dir = 142


Step

x = 160 + lengthdir_x(l,direction)
y = 160 + lengthdir_y(l,direction)
z = lengthdir_x(l,dir)

if holdl direction -= 2
if holdr direction += 2

if holdp l+=1
if holdm l-=1

if holdd dir -= 2
if holdu dir += 2

Begin step
holdl = keyboard_check(vk_left)
holdr = keyboard_check(vk_right)
holdu = keyboard_check(vk_up)
holdd = keyboard_check(vk_down)

holdp = keyboard_check(vk_add)
holdm = keyboard_check(vk_subtract)

Draw

d3d_set_projection(x,y,z,160,160,0,0,0,-1)


voila!
Si certain voulais programmer un calculatrice graphique
y auras ça en moins à faire.
Revenir en haut Aller en bas
nicoulas
*Excellent utilisateur*
nicoulas

Messages : 6030
Localisation : Dordogne
Projet Actuel : Croustaface Tower Defense Voir une fonction 3d ( de la forme z = ... ) Panicpr9

Voir une fonction 3d ( de la forme z = ... ) Empty
MessageSujet: Re: Voir une fonction 3d ( de la forme z = ... )   Voir une fonction 3d ( de la forme z = ... ) EmptySam 20 Déc 2008 - 17:54

Tu veux pas poster un exemple pour les fénéants ? hap
Revenir en haut Aller en bas
http://blithe.nd.free.fr/
 
Voir une fonction 3d ( de la forme z = ... )
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: