Programme de construction Python géométrie

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

Re: Programme de construction Python géométrie

par fatal_error » 04 Jan 2022, 20:08

impressioné par tes efforts mathelot

pr info je trouve sensiblement la même chose

Code: Tout sélectionner
import numpy as np


def d(v):
    return np.linalg.norm(v)


def rotate(angle, point, scale, center):
    v_dir = (point - center) / d(point - center)
    return np.dot([
      [np.cos(angle), -np.sin(angle)],
      [np.sin(angle), np.cos(angle)]
    ], v_dir) * scale + center


N = np.array([0, 0])
M = np.array([4, 0])
O = rotate(np.radians(65), M, 5, N)

d_OP = d(M-O) / np.cos(np.radians(40))
P = rotate(np.radians(40), M, d_OP, O)
angle_PMQ = np.arccos((9 - 2 * d(P-M) ** 2) / (-2 * d(P-M) ** 2))
Q = rotate(-angle_PMQ, P, d(P-M), M)
R = rotate(np.radians(-60), Q, d(P-M), M)

print('M', M)
print('N', N)
print('O', O)
print('P', P)
print('Q', Q)
print('R', R)
#M [4 0]
#N [0 0]
#O [2.11309131 4.53153894]
#P [7.80241265 1.58330439]
#Q [ 7.86784042 -1.41598206]
#R [ 4.70764377 -4.0576391 ]

la vie est une fête :)



mathelot

Re: Programme de construction Python géométrie

par mathelot » 04 Jan 2022, 21:14

@fatal_error C'est sympa d'avoir pris le même repère. On voit ainsi que l'on trouve les mêmes chiffres .
j'ai encore des problèmes, en particulier:

- avec turtle, je n'arrive pas à produire une image png ou jpg de la figure. Il faudrait que je passe par Canvas que je n'ai pas réussi à mettre en oeuvre

- j'ai téléchargé numpy, mais l'interpréteur Python ne trouve pas le fichier durant l'instruction "import numpy"
en plus , numpy est zippé , j'espère que ça va quand même fonctionner


j'ai repris ton code que je n'ai pas pu exécuter , n'ayant pas le chemin de numpy et matplotlib
Code: Tout sélectionner
import matplotlib.pyplot as plt
import numpy as np


N = np.array([0, 0])
M = np.array([4, 0])
O=np.array([2.113091309 , 4.531538935])
P=np.array([7.802412649 , 1.583304387])
Q=np.array([7.867840423 , - 1.415982063])
R=np.array([4.707643774 , - 4.057639095])

def plot_lines (arr):
  plt.plot(arr[:, 0], arr[:, 1])

fig = plt.figure()
plot_lines(np.array([M, N, O, M]))
plot_lines(np.array([P, M, O, P]))
plot_lines(np.array([P, Q, M, R, Q]))

plt.axis('equal')
plt.show()
fig.savefig('triangle_pythonE.png')

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

Re: Programme de construction Python géométrie

par fatal_error » 04 Jan 2022, 21:59

pour turtle
à la fin de ton code:
Code: Tout sélectionner
#...
tracer_triangle(a1,A1,b1,B1,c1,C1)


# https://stackoverflow.com/questions/4071633/turtle-module-saving-an-image
ts = turtle.getscreen()
ts.getcanvas().postscript(file="duck.eps")
turtle.done()


from PIL import Image
def eps_as_png(epsname, filename):
   img = Image.open(epsname)
   img.save(filename, 'png')

eps_as_png("duck.eps", "duck.png")
print('done!')

devrait te sauvegarder duck.png si tant est que tu aies Pillow

ce qui ramène à ton point2: comment installer des paquets / modules pour python

la façon simple est d'utiliser pip, après on peut faire plus avancé mais pour débuter souvent c'est pas mal..

si tu as un peu de chance, pip install numpy et(ou) pip install Pillow suffiront
la vie est une fête :)

mathelot

Re: Programme de construction Python géométrie

par mathelot » 04 Jan 2022, 22:17

Merci beaucoup, je regarde.

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 65 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite