Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vpython绘图半球_Python_3d_Shapes_Vpython - Fatal编程技术网

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,但我想你应该能够理解我做了什么,很抱歉代码回复太晚,当你发布这个问题时,我试图解决相同的问题