This commit is contained in:
parent
d300b2279c
commit
74fe3c6a58
4 changed files with 27 additions and 20 deletions
16
.drone.yml
16
.drone.yml
|
@ -7,9 +7,15 @@ steps:
|
||||||
commands:
|
commands:
|
||||||
- mdl .
|
- mdl .
|
||||||
|
|
||||||
- name: python lint
|
|
||||||
image: cytopia/pylint
|
- name: python lint with ruff
|
||||||
|
image: pipelinecomponents/ruff
|
||||||
commands:
|
commands:
|
||||||
- apk add --no-cache py3-pip
|
- ruff py_hypercube.py
|
||||||
- pip3 install -r requirements.txt
|
|
||||||
- find . -type f -name "*.py" | xargs pylint
|
#- name: python lint
|
||||||
|
# image: cytopia/pylint
|
||||||
|
# commands:
|
||||||
|
# - apk add --no-cache py3-pip
|
||||||
|
# - pip3 install -r requirements.txt || true
|
||||||
|
# - find . -type f -name "*.py" | xargs pylint
|
||||||
|
|
2
.ruff.toml
Normal file
2
.ruff.toml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[lint]
|
||||||
|
ignore = ["F403", "F405"]
|
|
@ -1,6 +1,6 @@
|
||||||
# py_hypercube
|
# py_hypercube
|
||||||
|
|
||||||
Conversion of my old 3D "hello world" that animates the 3D projeciton of an hypercube.
|
Conversion of my old 3D "hello world" that animates the 3D projection of an hypercube.
|
||||||
|
|
||||||
With more or less parameters
|
With more or less parameters
|
||||||
|
|
||||||
|
|
27
py_hypercube.py
Executable file → Normal file
27
py_hypercube.py
Executable file → Normal file
|
@ -1,11 +1,10 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
# -*- coding: iso8859-15 -*-
|
|
||||||
""" projection variable d'un hypercube"""
|
""" projection variable d'un hypercube"""
|
||||||
|
|
||||||
# pour l'interaction avec le système
|
# pour l'interaction avec le système
|
||||||
# pour sqrt() et pow()
|
# pour sqrt() et pow()
|
||||||
import math
|
import math
|
||||||
# pour les nombres aléatoires
|
# pour les nombres aléatoires
|
||||||
from random import randint
|
from random import randint
|
||||||
|
|
||||||
import pygame as pg
|
import pygame as pg
|
||||||
|
@ -13,11 +12,11 @@ from pygame.locals import *
|
||||||
|
|
||||||
# importe tout ce qui est contenu dans le package OpenGL
|
# importe tout ce qui est contenu dans le package OpenGL
|
||||||
from OpenGL.GL import *
|
from OpenGL.GL import *
|
||||||
# GLU première couche au dessus d'OpenGL
|
# GLU première couche au dessus d'OpenGL
|
||||||
from OpenGL.GLU import *
|
from OpenGL.GLU import *
|
||||||
|
|
||||||
# couche supérieure, ressemble à la SDL, permet la gestion simplifiée de la configuration,
|
# couche supérieure, ressemble à la SDL, permet la gestion simplifiée de la configuration,
|
||||||
# des entrées (clavier souris) et des fonctions de plus haut niveau
|
# des entrées (clavier souris) et des fonctions de plus haut niveau
|
||||||
from OpenGL.GLUT import *
|
from OpenGL.GLUT import *
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -54,7 +53,7 @@ frepere = 0
|
||||||
flagsAnim = [1, 1, 1, 1]
|
flagsAnim = [1, 1, 1, 1]
|
||||||
fullscreen = 0
|
fullscreen = 0
|
||||||
|
|
||||||
## coordonnées
|
## coordonnées
|
||||||
# position
|
# position
|
||||||
x = 0.0
|
x = 0.0
|
||||||
y = 0.0
|
y = 0.0
|
||||||
|
@ -63,10 +62,10 @@ z = 3.0
|
||||||
cx = 0.0
|
cx = 0.0
|
||||||
cy = 0.0
|
cy = 0.0
|
||||||
cz = 0.0
|
cz = 0.0
|
||||||
# variables pour l'animation sur les coordonnées de l'espace de projection
|
# variables pour l'animation sur les coordonnées de l'espace de projection
|
||||||
# varAnim = [ -100, -33, 33, 100 ]
|
# varAnim = [ -100, -33, 33, 100 ]
|
||||||
|
|
||||||
# variables de départ aléatoires
|
# variables de départ aléatoires
|
||||||
varAnim = [randint(-100, 100),
|
varAnim = [randint(-100, 100),
|
||||||
randint(-100, 100),
|
randint(-100, 100),
|
||||||
randint(-100, 100),
|
randint(-100, 100),
|
||||||
|
@ -78,7 +77,7 @@ incAnim = [1.0, 1.0, 1.0, 1.0]
|
||||||
|
|
||||||
# fonction d'affichage principale
|
# fonction d'affichage principale
|
||||||
def draw():
|
def draw():
|
||||||
""" fonction d'affichage principale appelée par GlutMainLoop"""
|
""" fonction d'affichage principale appelée par GlutMainLoop"""
|
||||||
global x, y, z
|
global x, y, z
|
||||||
global cx, cy, cz
|
global cx, cy, cz
|
||||||
global varAnime
|
global varAnime
|
||||||
|
@ -86,7 +85,7 @@ def draw():
|
||||||
global incAnime
|
global incAnime
|
||||||
global frepere
|
global frepere
|
||||||
|
|
||||||
# couleur par défaut (le fond entre autre)
|
# couleur par défaut (le fond entre autre)
|
||||||
glClearColor(0.0, 0.0, 0.0, 0.0)
|
glClearColor(0.0, 0.0, 0.0, 0.0)
|
||||||
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
|
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
|
||||||
|
|
||||||
|
@ -105,7 +104,7 @@ def draw():
|
||||||
|
|
||||||
# gestion du clavier
|
# gestion du clavier
|
||||||
def keyboard(key):
|
def keyboard(key):
|
||||||
""" gère les touches normales"""
|
""" gère les touches normales"""
|
||||||
global frepere
|
global frepere
|
||||||
global flagsAnim
|
global flagsAnim
|
||||||
global fullscreen
|
global fullscreen
|
||||||
|
@ -154,7 +153,7 @@ def draw_line(x1, y1, z1, x2, y2, z2):
|
||||||
|
|
||||||
|
|
||||||
def draw_repere():
|
def draw_repere():
|
||||||
""" dessine le repère orthogonal"""
|
""" dessine le repère orthogonal"""
|
||||||
glBegin(GL_LINES)
|
glBegin(GL_LINES)
|
||||||
glColor3f(1.0, 0.0, 0.0)
|
glColor3f(1.0, 0.0, 0.0)
|
||||||
glVertex2i(0, 0)
|
glVertex2i(0, 0)
|
||||||
|
@ -189,7 +188,7 @@ def draw_hypercube(a1, b1, c1, d1):
|
||||||
hz = hp[p * 4 + 2]
|
hz = hp[p * 4 + 2]
|
||||||
ht = hp[p * 4 + 3]
|
ht = hp[p * 4 + 3]
|
||||||
|
|
||||||
# calcul des coordonnées projetées
|
# calcul des coordonnées projetées
|
||||||
X.append( ( b * (pow(b, 2) + pow(c, 2) + pow(d, 2)) + pow(a, 2) * b) * hx + (pow(-b, 2) * a - a * (pow(a, 2) + pow(c, 2) + pow(d, 2))) * hy + (d * (pow(a, 2) + pow(b, 2) + pow(d, 2)) + pow(c, 2) * d) * hz + (c * pow(d, 2) + c * (pow(a, 2) + pow(b, 2) + pow(c, 2))) * ht)
|
X.append( ( b * (pow(b, 2) + pow(c, 2) + pow(d, 2)) + pow(a, 2) * b) * hx + (pow(-b, 2) * a - a * (pow(a, 2) + pow(c, 2) + pow(d, 2))) * hy + (d * (pow(a, 2) + pow(b, 2) + pow(d, 2)) + pow(c, 2) * d) * hz + (c * pow(d, 2) + c * (pow(a, 2) + pow(b, 2) + pow(c, 2))) * ht)
|
||||||
|
|
||||||
Y.append( (c * (pow(b, 2) + pow(c, 2) + pow(d, 2)) + pow(a, 2) * c) * hx + (-d * (pow(a, 2) + pow(c, 2) + pow(d, 2) ) - pow(b, 2) * d) * hy + (pow(-c, 2) * a-a*(pow(a, 2) + pow(b, 2) + pow(d, 2))) * hz + (-b * pow(d, 2) - b * (pow(a, 2) + pow(b, 2) + pow(c, 2))) * ht)
|
Y.append( (c * (pow(b, 2) + pow(c, 2) + pow(d, 2)) + pow(a, 2) * c) * hx + (-d * (pow(a, 2) + pow(c, 2) + pow(d, 2) ) - pow(b, 2) * d) * hy + (pow(-c, 2) * a-a*(pow(a, 2) + pow(b, 2) + pow(d, 2))) * hz + (-b * pow(d, 2) - b * (pow(a, 2) + pow(b, 2) + pow(c, 2))) * ht)
|
||||||
|
|
Loading…
Reference in a new issue