2012-06-12 1 views
1

Я сфера построены на моей программе, так:Vpython рисунок полусферы

ball=sphere(pos=vector(0,0,0),opacity = 0.5,radius=0.95,color=color.black) 

Есть ли способ сделать это только показать верхнюю половину сферы?

Я использую vpython.

Спасибо,

ответ

0

вы могли бы сделать коробку с черным цветом и сделать его покрыть половину сферы, но кроме этого я не знаю, извините

1

Лучший способ сделать это сделать экструзию. Сделайте свою фигуру четверть круга, затем выполните экструзию в течение 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) 

не уверен, если это полностью синтаксиса ошибок и т.д., но я думаю, вы понимаете идею за это. Квадрат круга поворачивается от центра до полного полушария. Надеюсь, ты получишь эту идею, просто сделал это, но для создания полной сферы с вытащенным патроном, как если бы кусок пирога был вне сферы.

0

только для того, чтобы быть ясным, я сделал это, используя экструзии, только мне понадобилось 3/4 сферы. Сделайте половину формы cirlce, вызывая круг, а затем вычтите квадрат на половине круга. После этого сделать ротацию равного 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, но я думаю, что вы должны понять, что я сделал, извините за поздний ответ с кодом, когда вы разместили этот вопрос, я пытался решить ту же проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^