Ich versuche ein Winkelsymbol mit vpython zwischen zwei Vektoren zu erstellen. Diese Vektoren sind der Quellenvektor und die x-y-Projektion dieses Vektors. Ich verwende das vpython-Paket und insbesondere arc
aus dem shapes
-Modul von vpython.Erstellen Sie einen Winkel zwischen zwei Vektoren 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
Ich glaube, Sie brauchen etwas ausführlichere zu beschreiben, was Sie versuchen und zu erreichen, was nicht funktioniert. – skrx
Vielen Dank für Ihren Kommentar. Ich möchte einen geschlossenen Bogen zwischen zwei Vektoren in vpython erstellen und dann mit einem Winkelsymbol beschriften. Diese zwei Vektoren sind wie in der beigefügten Figur gezeigt, nämlich der Quellenvektor und seine Projektion in die X-Y-Ebene. Was funktioniert nicht im Arc-Erstellungsteil? @ skrx –