Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92 SC+
Liens
¤ Vous cherchez une fonction ?
Utilitaires >> Graph 90+E >> Graphisme >> 3D Python
3D Python
Version : 1.0 Taille : 3127 octets Ajouté le : 2022-06-18 19:00 Modifié le : 2022-06-18 19:00
Auteur et posteur :
ZecterHors ligneMembrePoints: 159 Défis: 0 Message
Aucune image disponible
Nombre de visites sur cette page : 286
Score au progrank : 7
Pas encore de note !
Vous devez être connecté(e) pour noter (inscription).
40 téléchargements | Soumettre un test


Description en français :

Un moteur de graphismes 3D très basique que j'ai créé. Extrayez le fichier "3D.zip" à la racine de la calculatrice de préférence (après c'est vous qui voyez).

Lancez le pogramme "Cube.py" ou "Pyramid4.py" pour voir un cube ou une pyramide tourner en 3D .

Le fichier "Dims.py" (Dimensions en raccourci pour les 8 caractères) contient une fonction threeD_to_twoD(points, angles, distance, perspective) (les angles, la distance, et la perspective ont des valeurs par défaut) pour convertir une liste de points 3D (divisez les coordonnées par 100) en une liste de points 2D (les coordonnées reviennent normales). Le fichier utilise de la manipulation de matrices pour ceux qui veulent savoir.

Voilà voilà si vous avez des questions n'hésitez pas !

English description:

A (very basic) 3D graphics engine which I created. Extract the file called "3D.zip" at the root preferably on your calculator (but you see what you want).

Launch the program "Cube.py" or "Pyramid4.py" to see a cube or a pyramid turning in 3D .

The file called "Dims.py" (Dimensions in short for the 8 characters) contains a functions called threeD_to_twoD(points, angles, distance, perspective) (the angles, the distance, and the perspective all have default values) to convert a list of 3D points (divide the coordinates by 100) into a list of 2D points (the coordinates are returned normal). The file uses matrix manipulation for the ones who want to know.

That's pretty much it, if you have any questions feel free to ask !


Commentaires :


LephenixnoirHors ligneAdministrateurPoints: 22770 Défis: 149 Message
Posté le 19-06-2022 à 00:01 | #
Une petite démo pour aller avec ?

J'avoue que j'aime beaucoup abuser de cette projection. Je crois que les trois quarts de mes quelques programmes Python pour la Graph 90+E sont construits sur un effet 3D comme ça.

Est-ce que tu as testé ce que ça donne en perfs quand tu passes à l'échelle (ie. gros modèles 3D ou beaucoup de lignes à tracer) ? Dans un de mes programmes je me suis trouvé limité par le temps de rendu des lignes.

Props pour la projection 4D (bons souvenirs). J'ai mentionné que j'adore ce genre de conneries ?
ZecterHors ligneMembrePoints: 159 Défis: 0 Message
Posté le 19-06-2022 à 11:40 | #
Oui j'ai déjà testé et ça ramme à partir du moment où il y a des points en plus à calculer mais sinon le rendu des lignes est fait en 2D donc ça va. Sinon oui j'avais vu ton programme de chute tridimensionnelle et bah pour moi tant qu'il y a pas trop de pixels à colorier, ça va.
Merci pour la projection 4D ! En fait j'ai fait ce programme avec une série de tutos (The Coding Train toujours ! ça, ça, plus peut-être ça) J'ai pas toutes les rotations 4D finies (ça serait trop de temps pour un truc que j'utiliserais pas), mais si tu veux tu peux les ajouter si tu vois comment ça marche.

P.S. : Oups j'avais pas vu tes liens, visiblement tu l'as déjà fait !

P.P.S. : Au passage comment vous faites pour capturer l'écran de la calculatrice pour les vidéos/images ?
LephenixnoirHors ligneAdministrateurPoints: 22770 Défis: 149 Message
Posté le 19-06-2022 à 11:52 | #
Excellent ! Je ne connaissais pas ces tutos, j'y trouverai sans doute deux-trois trucs à apprendre.

P.P.S. : Au passage comment vous faites pour capturer l'écran de la calculatrice pour les vidéos/images ?

Dans mon cas je lance les scripts sur le PC avec une émuation de casioplot via SDL et je prends les vidéos là. En principe tu peux capturer l'écran de la calto soit avec Screen Receiver (hors vidéo) soit sur l'émulateur, mais dans les deux cas ça ralentit pas mal l'exécution, donc quitte à devoir réajuster la vitesse autant partir d'une version PC, c'est plus facile. Pour les programmes Basic et les add-ins on peut faire mieux.
ZecterHors ligneMembrePoints: 159 Défis: 0 Message
Posté le 19-06-2022 à 13:02 | #
Lephenixnoir a écrit :
Excellent ! Je ne connaissais pas ces tutos, j'y trouverai sans doute deux-trois trucs à apprendre.

Oui j'adore cette chaine, il fait des trucs super liés aux maths et autres !

Lephenixnoir a écrit :
Dans mon cas je lance les scripts sur le PC avec une émuation de casioplot via SDL et je prends les vidéos là.

SDL ? J'ai réussi à prendre une capture de mon Mandelbrot avec Screen Receiver mais ya pas d'émulateur Graph 90+E gratuit ? J'ai cherché sur le site Casio et il faut une Licence.
LephenixnoirHors ligneAdministrateurPoints: 22770 Défis: 149 Message
Posté le 19-06-2022 à 13:09 | #
SDL c'est une bibliothèque multimédia relativement minimaliste et très populaire. Dans ce contexte elle sert essentiellement à créer une fenêtre et dessiner dedans. Il y a des bindings dans à peu près tous les langages, dont Python, ce qui est utile ici.

Pour l'émulateur tu peux l'utiliser gratuitement pendant 90 jours, et si tu cherches bien il y a toujours un moyen de s'en tirer pour le garder plus longtemps.
ZecterHors ligneMembrePoints: 159 Défis: 0 Message
Posté le 19-06-2022 à 13:25 | #
Donc si j'ai bien compris je peux créer un émulateur assez basique avec SDL et m'en servir pour enregistrer l'écran ?
Sinon ok pour l'émulateur officiel Casio ! Merci pour tout !
Shadow15510Hors ligneAdministrateurPoints: 5410 Défis: 16 Message
Posté le 19-06-2022 à 13:31 | #
Comme ici c'est du Python, tu peux juste remplacer les références à casioplot par des références à matplotlib sur ordi et ainsi avoir des screens / vidéos comme tu veux avec de simples captures d'écran de ton ordi.
LephenixnoirHors ligneAdministrateurPoints: 22770 Défis: 149 Message
Posté le 19-06-2022 à 13:31 | #
Quand je dis "émulateur" avec la SDL c'est vraiment juste un bout de programme qui ouvre une fenêtre et reprogramme les quelques fonctions de casioplot.

Par exemple, voici ce que j'ai utilisé pour Chute tridimensionnelle (avec pygame, un wrapper Python autour de la SDL):

import sys
import pygame
from PIL import Image

pygame.init()
screen = pygame.display.set_mode((384, 216))

def set_pixel(x, y, color):
    pygame.draw.rect(screen, color, pygame.Rect(x, y, 1, 1))
def show_screen():
    pygame.display.flip()
ZecterHors ligneMembrePoints: 159 Défis: 0 Message
Posté le 19-06-2022 à 14:45 | #
Ah ok et ensuite tu copies et colles le code original en dessous ! Je vois... Merci pour ça je vais essayer !

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 62 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