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