首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vpython绘图半球

Vpython绘图半球
EN

Stack Overflow用户
提问于 2012-06-13 05:51:27
回答 3查看 1.9K关注 0票数 2

我在我的程序中绘制了一个球体,如下所示:

代码语言:javascript
复制
ball=sphere(pos=vector(0,0,0),opacity = 0.5,radius=0.95,color=color.black)

有没有办法让它只显示球体的上半部分?

我使用的是vpython。

谢谢,

EN

回答 3

Stack Overflow用户

发布于 2013-05-03 08:44:43

执行此操作的最好方法是进行挤出。使你的形状是一个四分之一的圆,然后在整个60度弧形挤出。如果你看到挤出的例子,他们有很多关于这方面的帮助,vpython的纪录片也是如此。

例如:

代码语言:javascript
复制
    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)

不确定这是否完全没有语法错误,等等,但我认为你理解这背后的想法。圆的四分之一从圆心开始旋转,直到形成一个完整的半球。希望你能理解,只是为了做一个完整的球体,拿出一个卡盘,就像是一块蛋糕离开了球体。

票数 2
EN

Stack Overflow用户

发布于 2012-08-21 23:07:22

你可以做一个黑色的盒子,让它覆盖半个球体,但除此之外,我不知道对不起

票数 0
EN

Stack Overflow用户

发布于 2014-02-02 03:24:55

为了清楚起见,我已经使用了挤出,只是我需要一个球体的3/4。通过调用circle创建一个半圆形,然后在半个圆上减去一个正方形。在此之后,使您的旋转等于1pi (半个圆)。下面是如何做的:

代码语言:javascript
复制
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)

你必须旋转它,这样它就会丢失上半部分而不是侧面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11005413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档