Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Raytracing 3D Casio FX92+ !
Maukatyt Hors ligne Membre Points: 11 Défis: 0 Message

Raytracing 3D Casio FX92+ !

Posté le 14/02/2020 18:18

Bonjour à tous, je viens de programmer le premier programme 3D de raytracing sur une calculatrice FX92+ ! ( Marche uniquement sur la + qui contient une section algorithmique.

Comment cela fonctionne ? La calculatrice vous demande d'entrer ces différents données :
A : Largeur du cube 3D ( Conseillé pour test : 20)
B : Hauteur ( Conseillé pour test : 20)
C : Distance entre les deux cubes, effet de 3D ( Conseillé pour test : 16 )
M : Point de vue du cube entre 1 et 40, 40 -----------[Cube]--------------1 ( Conseillé pour test : 35)

Une fois toutes ses donnée entrées, le programme s'occupera de crée le cube puis de trouver les angles de manière à tracer l'ombre du raytracing.

Si par exemple je met M à 15, je verrais le cube de la droite, mais si je le met par exemple à 35, je le verrais à la gauche, mais si je choisis 0 et que je me met devant le cube, comme dans la réalité vous ne verrez qu'un carré.
Et bien sur l'ombre va du carré au point de vue par lequel vous regarder le cube 3D.
Amusez vous bien !


Code :

Aller à -60, -10
Style croix
Stylo écrit
Demander A
Demander B
Demander C
Demander M
Si M = 0 :
C = 0
Fin
S'orienter à 0 degrés
Avancer de A Px
S'orienter à 90
Avancer de B Px
Mettre variable D à x
Mettre variable E = -60
S'orienter à 180
Avancer de A Px
S'orienter à -90
Avancer de B PX
S'orienter à M x 4
Avancer de C Px
S'orienter à 0
Avancer de A px
S'orienter à 90
Avancer de B px
S'orienter à 180
Avancer de A PX
S'orienter à -90
Avancer de B PX
S'orienter à M x 4
Avancer de 0-C Px
Avancer de C PX
S'orienter à 0
Avancer de A PX
S'orienter à M x 4
Avancer de 0-C Px
Avancer de C
S'orienter à 90
Avancer de B Px
S'orienter à M x 4
Avancer de 0-C Px
S'orienter à M x 4
Avancer de C px
Avancer de 0-C Px
Stylo Relevé
Aller à -55, -25
Avancer de M Px
Mettre var F à x
Si M >= 0
Répéter jusqu'a D=E
Aller à F, -25
Stylo écrit
Aller à E, -10
Stylo relevé
Fin
Fin
Style flèche
Aller à F, -25
Fin

Voila le code, cela m'a pris 2 jours mais ça en valait la peine !
Amusez vous !

Fichier joint


Lephenixnoir Hors ligne Administrateur Points: 24575 Défis: 170 Message

Citer : Posté le 14/02/2020 18:31 | # | Fichier joint


Intéressant, effectivement il y a toutes les raisons pour que ce soit possible !

Je n'ai pas ma fx-92 SC+ ici (en stage), et je suis pas sûr que grand-monde s'amuse à recopier, donc j'ai au moins fait une version pour mon interpréteur fx-92 SC+ pour tester sur mon PC (ci-dessous, si jamais).

goto -60,-10
pendown
setvar 20,A
setvar 20,B
setvar 16,C
setvar 35,M

if M=0
  setvar 0,C
if_end

orient 0
forward A
orient 90
forward B
setvar x,D
setvar -60,E
orient 180
forward A
orient -90
forward B
orient M*4
forward C
orient 0
forward A
orient 90
forward B
orient 180
forward A
orient -90
forward B
orient M*4
forward 0-C
forward C
orient 0
forward A
orient M*4
forward 0-C
forward C
orient 90
forward B
orient M*4
forward 0-C
orient M*4
forward C
forward 0-C
penup
goto -55, -25
forward M
setvar x,F

if M >= 0
  until D=E
    goto F, -25
    pendown
    goto E, -10
    penup
  until_end
if_end

goto F, -25

J'ai mis les paramètres que tu as indiqué mais ça ne donne probablement pas exactement le bon résultat. Je pense qu'il y a des couacs de copie sur ton sujet puisque :
La boucle "tant que D=E" est infinie : ni D ni E ne change de valeur dedans.
Il y a un Fin "en trop" à la fin du programme.
Mais il y sans doute aussi un problème dans mon programme.

Voilà quand même ce que ça me donne avec les paramètres par défaut !


J'attends de voir le résultat original !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Maukatyt Hors ligne Membre Points: 11 Défis: 0 Message

Citer : Posté le 14/02/2020 19:32 | #


Autant pour moi, le Fin à la fin du programme doit être retiré, et j'ai également oublier de copier une ligne de code, dans la boucle Tant que il faut rajouter après stylo relevé, E = E + 1. ainsi qu'un bloc s'orienter a 180 et avancer de A px

Code :

Aller à -60, -10
Style croix
Stylo écrit
Demander A
Demander B
Demander C
Demander M
Si M = 0 :
C = 0
Fin
S'orienter à 0 degrés
Avancer de A Px
S'orienter à 90
Avancer de B Px
Mettre variable D à x
Mettre variable E = -60
S'orienter à 180
Avancer de A Px
S'orienter à -90
Avancer de B PX
S'orienter à M x 4
Avancer de C Px
S'orienter à 0
Avancer de A px
S'orienter à 90
Avancer de B px
S'orienter à 180
Avancer de A PX
S'orienter à -90
Avancer de B PX
S'orienter à M x 4
Avancer de 0-C Px
Avancer de C PX
S'orienter à 0
Avancer de A PX
S'orienter à M x 4
Avancer de 0-C Px
Avancer de C
S'orienter à 90
Avancer de B Px
S'orienter à M x 4
Avancer de 0-C Px
S'orienter à 180 (------- A rajouter
Avancer de A (------- A rajouter
S'orienter à M x 4
Avancer de C px
Avancer de 0-C Px
Stylo Relevé
Aller à -55, -25
Avancer de M Px
Mettre var F à x
Si M >= 0
Répéter jusqu'a D=E
Aller à F, -25
Stylo écrit
Aller à E, -10
Stylo relevé
Mettre variable E à E + 1 (----- A rajouter !
Fin
Fin
Style flèche
Aller à F, -25


Eh voila le programme marche comme il le faut !
D'ailleurs je viens juste de découvrir ce forum Planet Casio, je commencerais donc à poster tout mes jeux ici !
Bon amusement !


En train de bosser sur minecraft 3D
Lephenixnoir Hors ligne Administrateur Points: 24575 Défis: 170 Message

Citer : Posté le 14/02/2020 19:38 | # | Fichier joint


Ah, c'est mieux, bien joué !

Voilà le code dans le style de l'interpréteur pour ceux qui voudraient essayer mais pas tout retaper...

goto -60,-10
pendown
setvar 20,A
setvar 20,B
setvar 16,C
setvar 35,M

if M=0
  setvar 0,C
if_end

orient 0
forward A
orient 90
forward B
setvar x,D
setvar -60,E
orient 180
forward A
orient -90
forward B
orient M*4
forward C
orient 0
forward A
orient 90
forward B
orient 180
forward A
orient -90
forward B
orient M*4
forward 0-C
forward C
orient 0
forward A
orient M*4
forward 0-C
forward C
orient 90
forward B
orient M*4
forward 0-C
orient 180
forward A
orient M*4
forward C
forward 0-C
penup
goto -55, -25
forward M
setvar x,F

if M >= 0
  until D=E
    goto F, -25
    pendown
    goto E, -10
    penup
    setvar E+1,E
  until_end
if_end

goto F, -25


Et voilà la tête ! Sympa !


Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 248 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd