漢字プリント 数学プリント
問題文
下の図で、 $\mathrm{X,Y}$ はどちらも、すべての辺の長さが $1\mathrm{cm}$ で底面が正方形の四角すいです。 $\mathrm{X}$ の正方形の面を床に接着し、 $\mathrm{A}$ と $\mathrm{F,}$ $\mathrm{B}$ と $\mathrm{E,}$ $\mathrm{C}$ と $\mathrm{D}$ がそれぞれ重なるように $\mathrm{X}$ と $\mathrm{Y}$ を接着すると、 $\mathrm{G}$ の床からの高さは、 $\mathrm{A}$ の床からの高さの    倍です。
図
(2022 灘中 1日目12番)
$$\frac{4}{3}$$
※ この答えは学校側が公表したものではありません。個人が作成した非公式の答えです。
コード
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as ani

#紙の準備
fig = plt.figure()
ax=fig.add_subplot(projection='3d')
ax.set_title("2022灘中算数 1日目12番")
ax.set_xlim(-0.8,0.6)
ax.set_ylim(-0.2,1.2)
ax.set_zlim(-0.2,1.2)
ax.set_box_aspect((1,1,1))
ax.axis("off")

#点の準備
A = [-1/2,1/2,np.sqrt(2)/2]
P = [-1,1,0]
Q = [-1,0,0]
B = [0,0,0]
C = [0,1,0]
R = [5/6,1/2,np.sqrt(2)/6]
G = [1/3,1,2*np.sqrt(2)/3]

#立体を描画
ax.plot_trisurf([P[0],Q[0],B[0],C[0]],
                [P[1],Q[1],B[1],C[1]],
                [P[2],Q[2],B[2],C[2]],
                color="cyan",alpha=0.4)
ax.plot_trisurf([A[0],B[0],R[0],G[0]],
                [A[1],B[1],R[1],G[1]],
                [A[2],B[2],R[2],G[2]],
                color="orange",alpha=0.4)
ax.plot([P[0],A[0],Q[0]],
        [P[1],A[1],Q[1]],
        [P[2],A[2],Q[2]],
        color="blue")
ax.plot([C[0],P[0],Q[0],B[0]],
        [C[1],P[1],Q[1],B[1]],
        [C[2],P[2],Q[2],B[2]],
        color="blue")
ax.plot([A[0],B[0],C[0],A[0]],
        [A[1],B[1],C[1],A[1]],
        [A[2],B[2],C[2],A[2]],
        color="magenta")
ax.plot([R[0],C[0],G[0]],
        [R[1],C[1],G[1]],
        [R[2],C[2],G[2]],
        color="darkorange")
ax.plot([B[0],R[0],G[0],A[0]],
        [B[1],R[1],G[1],A[1]],
        [B[2],R[2],G[2],A[2]],
        color="darkorange")

#立体を回転させて動画を作成する
def update(i):
    if i<180:
        ax.view_init(30,-90+2*i)
    elif i<300:
        ax.view_init(30+2*(i-180),-90)
    elif i<345:
        ax.view_init(-90+2*(i-300),-90)
    elif i<375:
        ax.plot([A[0],A[0]],
                [A[1],A[1]],
                [A[2],A[2]*(375-i)/30],
                color="green",linestyle="dashed")
        ax.plot([G[0],G[0]],
                [G[1],G[1]],
                [0,G[2]*(i-345)/30],
                color="red",linestyle="dashed")
        ax.plot(G[0],G[1],G[2],
                color="red",marker="o")
    elif i<395:
        ax.text(-0.73,0.5,0.16,"③",
        color="green",fontsize=20,alpha=(i-375)/20)
    elif i<415:
        ax.text( 0.37,1.0,0.32,"④",
        color="red",fontsize=20,alpha=(i-395)/20)

mov = ani.FuncAnimation(fig,update,450)
plt.show()
解説になっているのか?甚だギモンな動画
「高校数学のエアポケット」に戻る