私は自分のプログラムに球を次のようにプロットしています:
ball=sphere(pos=vector(0,0,0),opacity = 0.5,radius=0.95,color=color.black)
球の上半分だけを表示する方法はありますか?
私はvpythonを使用しています。
ありがとうございました、
これを行う最善の方法は、押し出しを作成することです。シェイプを円の 4 分の 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)
これが完全に構文エラーがないかどうかなどはわかりませんが、この背後にある考え方を理解していると思います. 完全な半球になるまで、円の 4 分の 1 を中心から回転させます。アイデアが得られることを願っていますが、これを行ったのは、まるでケーキのスライスが球から外れているかのように、チャックを取り出して完全な球を作るためです。
明確にするために、押し出しを使用してこれを行いましたが、必要なのは球の 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)
側面ではなく上半分がなくなるように回転させる必要があります。