diff --git a/.drone.yml b/.drone.yml index 44e0ae0..d699d85 100644 --- a/.drone.yml +++ b/.drone.yml @@ -7,9 +7,15 @@ steps: commands: - mdl . -- name: python lint - image: cytopia/pylint + +- name: python lint with ruff + image: pipelinecomponents/ruff commands: - - apk add --no-cache py3-pip - - pip3 install -r requirements.txt - - find . -type f -name "*.py" | xargs pylint + - ruff py_hypercube.py + +#- 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 diff --git a/.ruff.toml b/.ruff.toml new file mode 100644 index 0000000..8f64624 --- /dev/null +++ b/.ruff.toml @@ -0,0 +1,2 @@ +[lint] +ignore = ["F403", "F405"] diff --git a/README.md b/README.md index 2dffd52..762bc03 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 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 diff --git a/py_hypercube.py b/py_hypercube.py old mode 100755 new mode 100644 index c9889a1..3b3118e --- a/py_hypercube.py +++ b/py_hypercube.py @@ -1,11 +1,10 @@ #!/usr/bin/python -# -*- coding: iso8859-15 -*- """ projection variable d'un hypercube""" -# pour l'interaction avec le système +# pour l'interaction avec le système # pour sqrt() et pow() import math -# pour les nombres aléatoires +# pour les nombres aléatoires from random import randint import pygame as pg @@ -13,11 +12,11 @@ from pygame.locals import * # importe tout ce qui est contenu dans le package OpenGL from OpenGL.GL import * -# GLU première couche au dessus d'OpenGL +# GLU première couche au dessus d'OpenGL from OpenGL.GLU import * -# 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 +# 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 from OpenGL.GLUT import * ## @@ -54,7 +53,7 @@ frepere = 0 flagsAnim = [1, 1, 1, 1] fullscreen = 0 -## coordonnées +## coordonnées # position x = 0.0 y = 0.0 @@ -63,10 +62,10 @@ z = 3.0 cx = 0.0 cy = 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 ] -# variables de départ aléatoires +# variables de départ aléatoires varAnim = [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 def draw(): - """ fonction d'affichage principale appelée par GlutMainLoop""" + """ fonction d'affichage principale appelée par GlutMainLoop""" global x, y, z global cx, cy, cz global varAnime @@ -86,7 +85,7 @@ def draw(): global incAnime 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) glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) @@ -105,7 +104,7 @@ def draw(): # gestion du clavier def keyboard(key): - """ gère les touches normales""" + """ gère les touches normales""" global frepere global flagsAnim global fullscreen @@ -154,7 +153,7 @@ def draw_line(x1, y1, z1, x2, y2, z2): def draw_repere(): - """ dessine le repère orthogonal""" + """ dessine le repère orthogonal""" glBegin(GL_LINES) glColor3f(1.0, 0.0, 0.0) glVertex2i(0, 0) @@ -189,7 +188,7 @@ def draw_hypercube(a1, b1, c1, d1): hz = hp[p * 4 + 2] 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) 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)