azf a écrit:Bonjour
La question est-elle : j'ai du mal à programmer ça en python, pourriez-vous m'aider?
La question est -elle : j'ai du mal à construire cette figure, pourriez-vous m'aider?
Si je pose la question de quelle est la question c'est que j'ai un doute sur la question posée
Françoisdesantilles a écrit:
1)Tracer un triangle MNO tel que MN=4cm ,l'angle MNO=65° et NO=5cm.
import turtle
import decimal
from sys import exit
tur = turtle.Turtle()
#facteur d'échelle pour agrandir/rapetisser les longueurs
scale=40.0
tur.right(180)
tur.pendown()
def tracer_triangle(a,A,b,B,c,C):
#baisse le stylo
#tur.pendown()
#trace le 1er côté
tur.forward(b)
#1er changement de direction
tur.right(180-A)
#trace le 2ème côté
tur.forward(c)
#2ème changement de direction
tur.right(180-B)
#trace le 3ème côté
tur.forward(a)
# positionne le curseur pour démarrer le triangle suivant
tur.right(180)
#relève le stylo
#tur.penup()
# 1er triangle
a1=4.908693261*scale
A1=65
b1=4*scale
B1=47.60658511
c1=5*scale
C1=67.39341489
tracer_triangle(a1,A1,b1,B1,c1,C1)
#tracer_triangle(4.908693261,65,4,47.60658511,5,67.39341489)
# 2eme triangle
a1=4.118882705*scale
A1=40
b1=4.908693261*scale
B1=50
c1=6.407843964*scale
C1=90
tracer_triangle(a1,A1,b1,B1,c1,C1)
#3eme triangle
a1=4.118882705*scale
A1=68.6430924
b1=4.118882705*scale
B1=68.6430924
c1=3*scale
C1=42.71381521
tracer_triangle(a1,A1,b1,B1,c1,C1)
#4eme triangle
a1=4.118882705*scale
A1=60
b1=4.118882705*scale
B1=60
c1=4.118882705*scale
C1=60
tracer_triangle(a1,A1,b1,B1,c1,C1)
tur.hideturtle()
Figure Géoplan
Numéro de version: 2
Position de Roxy: Xmin: -4.45402298851, Xmax: 5.54597701149, Ymax: 5.61781609195
Objet dessinable Roxy, particularités: rouge, non dessiné
M point de coordonnées (0,0) dans le repère Roxy
N point de coordonnées (-4,0) dans le repère Roxy
M' image de M par la rotation de centre N et d'angle 65 (degré)
Objet dessinable M', particularités: non dessiné
C cercle de centre N et de rayon 5 (unité Uoxy)
Objet dessinable C, particularités: non dessiné
P' point d'intersection 1 de la droite (M'N) et du cercle C
Objet dessinable P', particularités: non dessiné
O point d'intersection 2 de la droite (M'N) et du cercle C
T1 polygone MNO
D1 droite perpendiculaire à (OM) passant par M
Objet dessinable D1, particularités: non dessiné
M1 image de M par la rotation de centre O et d'angle 40 (degré)
Objet dessinable M1, particularités: non dessiné
P point d'intersection des droites D1 et (OM1)
T2 polygone OMP
C1 cercle de centre P et de rayon 3 (unité Uoxy)
Objet dessinable C1, particularités: non dessiné
C2 cercle de centre M passant par P
Objet dessinable C2, particularités: non dessiné
Q point d'intersection 1 des cercles C1 et C2
Q' point d'intersection 2 des cercles C1 et C2
Objet dessinable Q', particularités: non dessiné
T3 polygone MPQ
C3 cercle de centre M passant par Q
Objet dessinable C3, particularités: non dessiné
C4 cercle de centre Q passant par M
Objet dessinable C4, particularités: non dessiné
R' point d'intersection 1 des cercles C3 et C4
Objet dessinable R', particularités: non dessiné
R point d'intersection 2 des cercles C3 et C4
T4 polygone MQR
Préférences pour l'impression ou la copie ajustée :
Unité de référence : unité de longueur Uoxy égale à 10 mm
Type de copie : vectorisée en couleur
Angles en degrés par défaut
Commentaire
Fin de la figure
import numpy as np
import matplotlib.pyplot as plt
M = np.array([0, 0])
N = np.array([np.sin(np.radians(65)), np.cos(np.radians(65))]) * (-4)
O = np.array([N[0], N[1] + 5])
def rotate (angle, point):
return np.dot([[np.cos(angle), -np.sin(angle)], [np.sin(angle), np.cos(angle)]], point)
# calcul de P: on va rotater O autour de M d'angle pi / 2
d_MP = 3 # on le sait, pourquoi ?
O_direction = O / np.linalg.norm(O)
P = rotate(np.radians(-90), O_direction) * 3
Q = rotate(np.radians(-60), P)
R = rotate(np.radians(-60), Q)
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('mfstuff.png')
comment génère-t-on une image sur maths-forum de la figure dessinée sous turtle ? pour l'instant, je ne sais pas faire
import numpy as np
import matplotlib.pyplot as plt
M = np.array([0, 0])
N = np.array([np.sin(np.radians(65)), np.cos(np.radians(65))]) * (-4)
O = np.array([N[0], N[1] + 5])
def rotate(angle, point):
return np.dot([
[np.cos(angle), -np.sin(angle)],
[np.sin(angle), np.cos(angle)]
], point)
# calcul de P: on rotate M de centre O
M_direction = -O / np.linalg.norm(O)
d_OP = np.linalg.norm(O) / np.cos(np.radians(40))
P = rotate(np.radians(40), M_direction) * d_OP + O
# calcul de Q par al-kashi
# PQ^2 = PM^2 + MQ^2 - 2PM * MQ cos(PMQ)
# PMQ = arccos(PQ^2 - PM^2 - MQ^2) / (-2PM * PQ)
angle_PMQ = np.arccos((9 - 2 * np.dot(P, P)) / (-2 * np.dot(P, P)))
Q = rotate(-angle_PMQ, P)
R = rotate(np.radians(-60), Q)
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('mfstuff.png')
mathelot a écrit:Comme repère, nous prenons le point N comme origine, le vecteur et orthonormée directe.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 33 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :