我在我的程序中绘制了一个球体,如下所示:
ball=sphere(pos=vector(0,0,0),opacity = 0.5,radius=0.95,color=color.black)有没有办法让它只显示球体的上半部分?
我使用的是vpython。
谢谢,
发布于 2013-05-03 08:44:43
执行此操作的最好方法是进行挤出。使你的形状是一个四分之一的圆,然后在整个60度弧形挤出。如果你看到挤出的例子,他们有很多关于这方面的帮助,vpython的纪录片也是如此。
例如:
circle = shapes.circle(radius=20) #you can use the size of your choice
square1 = Polygon[(-10,-20),(-10,20),(0,20),(0,-20)]
square2 = Polygon[(0,0),(0,20),(20,20),(20,0)]
rotation = paths.arc(radius=20, angle2=pi)
Hemisphere = extrusion(pos=rotation,shape=circle-square1-square2)不确定这是否完全没有语法错误,等等,但我认为你理解这背后的想法。圆的四分之一从圆心开始旋转,直到形成一个完整的半球。希望你能理解,只是为了做一个完整的球体,拿出一个卡盘,就像是一块蛋糕离开了球体。
发布于 2012-08-21 23:07:22
你可以做一个黑色的盒子,让它覆盖半个球体,但除此之外,我不知道对不起
发布于 2014-02-02 03:24:55
为了清楚起见,我已经使用了挤出,只是我需要一个球体的3/4。通过调用circle创建一个半圆形,然后在半个圆上减去一个正方形。在此之后,使您的旋转等于1pi (半个圆)。下面是如何做的:
S1 = shapes.circle(radius=1)
angle = 180 # degrees
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)你必须旋转它,这样它就会丢失上半部分而不是侧面。
https://stackoverflow.com/questions/11005413
复制相似问题