3
我想在兩個向量之間使用vpython創建一個角度符號。這些向量是這個向量的源向量和x-y投影。我正在使用vpython軟件包,尤其是模塊中的arc
。在兩個向量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
我認爲你需要描述了一下更詳細的你想要什麼來實現的,什麼是不工作。 – skrx
謝謝您的評論。我想在vpython的兩個向量之間創建一個閉合的弧,然後用角度符號標記它。這兩個矢量如附圖所示,即源矢量及其投影到X-Y平面。什麼不是弧創建部分的工作。 @skrx –