Vpython绘图半球
我在程序上绘制了一个球体,如下所示:Vpython绘图半球,python,3d,shapes,vpython,Python,3d,Shapes,Vpython,我在程序上绘制了一个球体,如下所示: ball=sphere(pos=vector(0,0,0),opacity = 0.5,radius=0.95,color=color.black) 有没有办法让它只显示球体的上半部分 我用的是vpython 谢谢,你可以做一个黑色的盒子,让它覆盖半个球体,但除此之外,我不知道对不起,你可以做一个黑色的盒子,让它覆盖半个球体,但除此之外,我不知道对不起,做这件事的最好方法是挤压。将您的形状做成四分之一圆,然后将挤出物做成60度的弧形。如果你看到挤压的例子,
ball=sphere(pos=vector(0,0,0),opacity = 0.5,radius=0.95,color=color.black)
有没有办法让它只显示球体的上半部分
我用的是vpython
谢谢,你可以做一个黑色的盒子,让它覆盖半个球体,但除此之外,我不知道对不起,你可以做一个黑色的盒子,让它覆盖半个球体,但除此之外,我不知道对不起,做这件事的最好方法是挤压。将您的形状做成四分之一圆,然后将挤出物做成60度的弧形。如果你看到挤压的例子,他们在这方面有很多帮助,vpython的纪录片也是如此 例:
不确定这是否完全没有语法错误,等等,但我认为您理解这背后的想法。圆的四分之一从中心开始旋转,直到形成一个完整的半球。希望你能想到,只是这样做了,但要制作一个完整的球体,要把夹头拿出来,就像一块蛋糕从球体中取出一样。最好的方法是挤压。将您的形状做成四分之一圆,然后将挤出物做成60度的弧形。如果你看到挤压的例子,他们在这方面有很多帮助,vpython的纪录片也是如此 例:
不确定这是否完全没有语法错误,等等,但我认为您理解这背后的想法。圆的四分之一从中心开始旋转,直到形成一个完整的半球。希望你能理解,只是这样做了,但是为了制作一个完整的球体,把一个夹头拿出来,就像一块蛋糕从球体中取出一样。为了清楚起见,我使用了挤压,只需要一个3/4的球体。通过调用圆来制作半圆形,然后在半个圆上减去一个正方形。在此之后,使您的旋转等于1pi(半圆),以下是如何做到这一点:
S1 = shapes.circle(radius=1)
angle = 180 #degrees
angle = angle=angle*(pi/180) #convert to radians (1pi)
sq = Polygon([(-10,-20),(-10,20),(0,20),(0,-20)])
semicircle = paths.arc(radius=0.000000001, angle1=pi/2, angle2=2.2*pi)
mf = frame()
Layer20_Extrusion = extrusion(frame=mf,pos=semicircle, shape=S1-sq,color=wh)
mf.rotate(angle=angle)
mf.pos=(0,0,0)
你必须旋转它,使它的上半部分缺失,而不是侧面
有一段时间没有使用此代码了,所以我不确定为什么半径=0.0000000001 ish,但我想你应该能够理解我做了什么,很抱歉代码回复太晚,当你发布此问题时,我正试图解决相同的问题。为了清楚起见,我使用了拉伸,只需要一个3/4的球体。通过调用圆来制作半圆形,然后在半个圆上减去一个正方形。在此之后,使您的旋转等于1pi(半圆),以下是如何做到这一点:
S1 = shapes.circle(radius=1)
angle = 180 #degrees
angle = angle=angle*(pi/180) #convert to radians (1pi)
sq = Polygon([(-10,-20),(-10,20),(0,20),(0,-20)])
semicircle = paths.arc(radius=0.000000001, angle1=pi/2, angle2=2.2*pi)
mf = frame()
Layer20_Extrusion = extrusion(frame=mf,pos=semicircle, shape=S1-sq,color=wh)
mf.rotate(angle=angle)
mf.pos=(0,0,0)
你必须旋转它,使它的上半部分缺失,而不是侧面
我已经有一段时间没有使用这个代码了,所以我不知道为什么radius=0.0000000001 ish,但我想你应该能够理解我做了什么,很抱歉代码回复太晚,当你发布这个问题时,我试图解决相同的问题