・私の解答の方法は、中学生の学習指導要領の範囲外です。ベクトル成分表示です。
https://www.deepl.com/ja/translator#ja/大人げないです。
・「切頭三角柱」は、大学入試問題の過去問類題にありませんでした。
共通テストの太郎さんと花子さんは、2024/03/05 現在。
切頭三角柱を扱っていないです。
・3次元FreeCADのワイヤーフレームです。
・勉強中。軸線方向の見え方。文字の回転です。
(追加) 教えて下さい。ver0.2の変数名をリストにすると、
計算箇所が5行?になりますか???
オリジナル
pdf 問題文 最後の大問、最後の小問です。
https://www.toshin.com/koukou_nyushi/files/2023/sugaku_q/yamanashi_sugaku_q.pdf#page=6
youtube 又は 過去5年分 様 から
https://homepage1.canvas.ne.jp/ynaka/R5PDF/19yamanashi.pdf#page=6
19山梨県<過去5年分
<http://homepage1.canvas.ne.jp/ynaka/zenmon.html
数学・英語のトリセツ! 様
解答解説 youtube 13:46
(コメントに私のコメントがあります。)
sympyで(オリジナル 様の方法で)
・勉強中。三平方の定理
sympyで
・ver0.1 対称性利用。四角錐2個と屋根形です。
・(追加)Rationalについて、コメントいただきました。ありがとうございました。
# ver0.1
from sympy import *
def myTaiseki(PTO,PTA,PTB,PTC):
return abs(Matrix([[PTA.x-PTO.x, PTA.y-PTO.y, PTA.z-PTO.z],
[PTB.x-PTO.x, PTB.y-PTO.y, PTB.z-PTO.z],
[PTC.x-PTO.x, PTC.y-PTO.y, PTC.z-PTO.z]]
).det()/6)
d =8
D,A,B,C=map(Point,[(0,0,d),(d,0,d),(d,d,d),(0,d,d)])
H,E,F,G=map(Point,[(0,0,0),(d,0,0),(d,d,0),(0,d,0)])
I =F+Rational(1,2) *(E-F)
J =G+Rational(1,2) *(F-G)
K =H+Rational(1,2) *(G-H)
L =E+Rational(1,2) *(H-E)
M =B+Rational(1,2) *(D-B)
P =B+Rational(3,3+1)*(M-B)
Q =D+Rational(3,3+1)*(M-D)
#
IJd =I+Rational(1,2) *(J-I)+Point(0,0,d)
v= (myTaiseki(A,L,I,P)+myTaiseki(P,L,A,Q))*2 \
+(Rational(1,2)*I.distance(J)*d*I.distance(L)) \
-(myTaiseki(I,J,P,IJd))*2
print("#",v)
# 704/3
・ver0.2 積分で。水平断面の多角形の面積計算です。
The intersection with other geometrical entity.
https://docs.sympy.org/latest/modules/geometry/plane.html#sympy.geometry.plane.Plane.intersection
The area of the polygon.
https://docs.sympy.org/latest/modules/geometry/polygons.html#sympy.geometry.polygon.Polygon.area
# ver0.2
from sympy import *
var('z',real=True,positive=True)
d =8
A,B,C,D=map(Point,[(0,0,d),(d,0,d),(d,d,d),(0,d,d)])
E,F,G,H=map(Point,[(0,0,0),(d,0,0),(d,d,0),(0,d,0)])
I,J,K,L=Rational(1,2)*(E+F),Rational(1,2)*(F+G),Rational(1,2)*(G+H),Rational(1,2)*(H+E)
M =B+Rational(1,2) *(D-B)
P =B+Rational(3,3+1)*(M-B)
Q =D+Rational(3,3+1)*(M-D)
#
myPlane=Plane(Point3D(0,0,z),normal_vector=(0,0,1))
LA=myPlane.intersection(Line(L,A))[0]
AI=myPlane.intersection(Line(A,I))[0]
IP=myPlane.intersection(Line(I,P))[0]
PJ=myPlane.intersection(Line(P,J))[0]
JC=myPlane.intersection(Line(J,C))[0]
CK=myPlane.intersection(Line(C,K))[0]
KQ=myPlane.intersection(Line(K,Q))[0]
QL=myPlane.intersection(Line(Q,L))[0]
area=Polygon( Point( LA.x,LA.y ),
Point( AI.x,AI.y ),
Point( IP.x,IP.y ),
Point( PJ.x,PJ.y ),
Point( JC.x,JC.y ),
Point( CK.x,CK.y ),
Point( KQ.x,KQ.y ),
Point( QL.x,QL.y )
).area
v=integrate(area,(z,0,d))
print("#",v)
# 704/3
#
area_max =maximum(area,z,Interval(0,d)) ;area_max_z=solveset( Eq(area,area_max),z,Interval(0,d)).args[0]
area_min =minimum(area,z,Interval(0,d)) ;area_min_z=solveset( Eq(area,area_min),z,Interval(0,d)).args[0]
print()
print("#",area)
print("#",area_max,area_max_z)
print("#",area_min,area_min_z)
print("#",float( v/d**3 ))
from sympy.plotting import plot
plot(0,area,(z,0,8),aspect_ratio=(1.0,1.0))
# -z**2/2 + 2*z + 32
# 34 2
# 16 8
# 0.4583333333333333
グラフ
FreeCADで作図
・作図勉強中
import FreeCAD
import Part
import Draft
import Mesh
#########################################################################################################
# 計算
##############################################################
# 2023 yamanasi 大問6 2(3)
from sympy import *
d =8
# D,A,B,C=map(Point,[(0,0,d),(d,0,d),(d,d,d),(0,d,d)])
# H,E,F,G=map(Point,[(0,0,0),(d,0,0),(d,d,0),(0,d,0)])
A,B,C,D=map(Point,[(0,0,d),(d,0,d),(d,d,d),(0,d,d)])
E,F,G,H=map(Point,[(0,0,0),(d,0,0),(d,d,0),(0,d,0)])
I,J,K,L=Rational(1,2)*(E+F),Rational(1,2)*(F+G),Rational(1,2)*(G+H),Rational(1,2)*(H+E)
M =B+Rational(1,2) *(D-B)
P =B+Rational(3,3+1)*(M-B)
Q =D+Rational(3,3+1)*(M-D)
##########################################################################################################
### 作図用
##########################################################################################################
### 3D作図
def myXYZ2Txt(A):
# return '(' + str(A.x) + ',' + str(A.y) + ',' + str(A.z) + ')'
return ''
def myTxtXYZ(A,myWedgei):
P5x=float(A.x)
P5y=float(A.y)
P5z=float(A.z)
p5 = FreeCAD.Vector(P5x, P5y, P5z)
myText = Draft.makeText(myWedgei, p5)
myText.Label = myWedgei
FreeCADGui.ActiveDocument.ActiveObject.FontSize = '1.0 mm'
return
def myTxtXYZ_S(*xy_tx):
for i in range(1,int(len(xy_tx)/2)+1):
myTxtXYZ(xy_tx[2*i-2],xy_tx[2*i-1]+myXYZ2Txt(xy_tx[2*i-2]) )
return
def myLine(A,B):
Ax,Ay,Az=float(A.x),float(A.y),float(A.z)
Bx,By,Bz=float(B.x),float(B.y),float(B.z)
pl = FreeCAD.Placement()
pl.Rotation.Q = (0.4247081540122249, 0.17592004639554645, 0.33985110062924484, 0.8204732460821097)
pl.Base = FreeCAD.Vector(-3.9166066876399563, -2.1670824762243774, 1.7495260956243028)
points = [FreeCAD.Vector(Ax,Ay,Az), FreeCAD.Vector(Bx,By,Bz)]
line = Draft.make_wire(points, placement=pl, closed=False, face=True, support=None)
Draft.autogroup(line)
return
def myLine_S(*args):
for i in range(1,len(args)):
myLine(args[i-1],args[i])
return
def myLine_C(*args):
for i in range(1,len(args)):
myLine(args[i-1],args[i])
myLine(args[i],args[0])
return
def myLine_H(*args):
for i in range(1,len(args)):
myLine(args[0],args[i])
return
#
myLine_C (D,A,B,C)
myLine_C (H,E,F,G)
myLine_C (I,J,K,L)
myLine_C (A,P,C,Q)
myLine_C (A,I,P,J,C,K,Q,L )
myLine_S (D,H)
myLine_S (A,E)
myLine_S (B,F)
myLine_S (C,G)
myTxtXYZ_S(D,"D",A,"A",B,"B",C,"C")
myTxtXYZ_S(E,"E",F,"F",G,"G",H,"H")
myTxtXYZ_S(I,"I",J,"J",K,"K",L,"L")
myTxtXYZ_S(P,"P",M,"M",Q,"Q")
#
doc = App.activeDocument()
App.ActiveDocument.addObject("App::Origin", "Origin")
# App.ActiveDocument.getObject('Origin').Visibility = True
App.ActiveDocument.recompute()
Gui.activeDocument().activeView().viewAxonometric()
Gui.SendMsgToActiveView("ViewFit")
大学入試問題の過去問の類題
”切頭三角柱”でサイト内検索。表示がないだけかもしれません。
大学入試数学問題集成 様
一致する結果はありません
数学入試問題 様
site://kamelink.com ”切頭三角柱”との一致はありません。
T氏の数学日記 様
site://mathmathmass.exblog.jp ”切頭三角柱”との一致はありません。
いつもの? sympyの実行環境と 参考のおすすめです。
いつもと違うおすすめです。