J'essaie de créer un symbole d'angle en utilisant vpython entre deux vecteurs. Ces vecteurs sont le vecteur source et la projection x-y de ce vecteur. J'utilise le paquet vpython et en particulier arc
du module shapes
de vpython.Créer un angle entre deux vecteurs vpython?
from vpython import *
import numpy as nump
scene2 = canvas(title='Source Vector',
width=800, height=600,
center=vector(0,0,0), background=color.white)
scene2.select()
geophone = pyramid(pos=vector(0,0,0), size=vector(2,2,2),
color = color.green, up = vector(-1,0,0))
shot_loc = sphere(pos=vector(-20,30,-20),
size=vector(2,2,2), color= color.red)
shot_loc_label = label(pos=shot_loc.pos,
text='Vib Shot', xoffset=-30,
yoffset=30, space=10,
height=12,
font='serif')
ray_vector = arrow(pos=vector(0,0,0), axis=shot_loc.pos,
shaftwidth=0.2, color= color.blue, length =40, headlength = 2, headwidth =1)
ray_vec_label = label(pos=(ray_vector.axis - ray_vector.pos)/2,
text='Ray Vector', xoffset=-30,
yoffset=30, space=10,
height=12,
font='sans')
source_vector = arrow(pos=vector(0,0,0), axis= vector(20,-30, 20),
shaftwidth=0.2, color= color.red, length =30, headlength = 2, headwidth =1)
projection_of_source_vector = cylinder(pos=vector(0,0,0), axis= vector(20,0, 20),
radius=0.2, color=color.green)
source_vec_label = label(pos=source_vector.axis,
text='Source Vector', xoffset=30,
yoffset=30, space=10,
height=12,
font='sans')
plunge_angle = diff_angle(vector(20,0, 20),vector(20,-30, 20))
plung_arc = shapes.circle(radius=10, angle1=0, angle2=plunge_angle, np=10, rotate=90)
extrusion(path=[vector(20,0, 20), vector(20,-30, 20)],
shape=plung_arc)
x_axis = arrow(pos=vector(-50,0,0), axis=vector(50,0,0), shaftwidth=0.2,
color= color.black, length =100, headlength = 2, headwidth =1)
z_axis = arrow(pos=vector(0,-40,0), axis=vector(0,40,0), shaftwidth=0.2,
color= color.black, length =80, headlength = 2, headwidth =1)
y_axis = arrow(pos=vector(0,0,40), axis=vector(0,0,-40), shaftwidth=0.2,
color= color.black, length =80, headlength = 3, headwidth =2)
T_x = text(text='X',
align='center', color=color.black, pos = vector(-52,0,0),
billboard =True, height =2)
T_y = text(text='Z',
align='center', color=color.black, pos = vector(0,-43,0),
billboard =True, height =2)
T_z = text(text='Y',
align='center', color=color.black, pos = vector(0,0, 43),
billboard =True, height =2)
T_x.width = 2*T_x.width
T_y.width = 2*T_y.width
T_z.width = 2*T_z.width
Je pense que vous devez décrire un peu plus en détail ce que vous essayez d'atteindre et ce qui ne fonctionne pas. – skrx
Merci pour votre commentaire. Je voudrais créer un arc fermé entre deux vecteurs dans vpython et l'étiqueter avec un symbole d'angle. Ces deux vecteurs sont tels que représentés sur la figure ci-jointe, à savoir le vecteur source et sa projection dans le plan X-Y. Ce qui ne fonctionne pas, c'est la partie création d'arc. @skrx –