Consider the tetrahedron with and . Let be the foot of the perpendicular from to line . Suppose that the planes and are perpendicular to each other and that . Let be the centroid of triangle , and let be the sphere with center tangent to the plane . Let be the locus of all points on such that . Find the area of the orthogonal projection of onto the plane . [4 points]\subsection*{Numerical answer}If Area = , compute .
[THOUGHT] I'll use Python to:
- Solve for coordinates of B satisfying length and perpendicular-plane constraints (with A=(0,0,4), H=(0,0,0), C=(-2,0,0), D=(2,0,0)).
- Compute centroid G of triangle ABH.
- Find the plane ACD equation; S is sphere centered at G tangent to plane ACD, so its radius is distance from G to that plane.
- Describe the locus T: intersection of sphere S with sphere defined by right-angle condition ∠APG = 90°, i.e. (A−P)·(G−P)=0.
- Verify that this locus is a circle, find its center and radius in 3D.
- Find area of orthogonal projection of this circle onto plane ABC. For a circle with normal n, projected onto plane with normal m, area scales by |n·m|/|n|. So area_proj = area_circle * |n_T · n_ABC|.
- Get numeric value, express as π/k, then output k.
Now I'll implement this step-by-step in Python. [/THOUGHT] [PYTHON] import sympy as sp
Define symbols
y = sp.symbols('y', real=True)
Fixed points
A = sp.Matrix([0,0,4]) H = sp.Matrix([0,0,0]) C = sp.Matrix([-2,0,0]) D = sp.Matrix([2,0,0])
From earlier reasoning: B = (0, y, z) with z=2, y^2=12
z_val = 2 y_val1 = 2sp.sqrt(3) y_val2 = -2sp.sqrt(3)
B1 = sp.Matrix([0, y_val1, z_val]) B2 = sp.Matrix([0, y_val2, z_val])
def check_perpendicular_planes(B): # plane ABH: through A,B,H; normal n1 = (A-H) x (B-H) n1 = (A-H).cross(B-H) # plane BCD: through B,C,D; normal n2 = (C-B) x (D-B) n2 = (C-B).cross(D-B) return sp.simplify(n1.dot(n2)), n1, n2
dot1, n1_1, n2_1 = check_perpendicular_planes(B1) dot2, n1_2, n2_2 = check_perpendicular_planes(B2)
print("dot products for perpendicularity (should be 0):", sp.simplify(dot1), sp.simplify(dot2))
Choose B = B1
B = B1 print("B:", B)
Centroid G of triangle ABH: average of A,B,H
G = (A + B + H)/3 print("G:", sp.simplify(G))
Plane ACD: find its normal
n_ACD = (C-A).cross(D-A) print("n_ACD (unnormalized):", sp.simplify(n_ACD))
Distance from G to plane ACD gives radius R of sphere S centered at G tangent to plane ACD
Plane ACD equation: n_ACD · (X - A) = 0
X = sp.Matrix(sp.symbols('x y z', real=True))
distance formula: |n·(G-A)| / |n|
num = abs(n_ACD.dot(G-A)) den = sp.sqrt(n_ACD.dot(n_ACD)) R = sp.simplify(num/den) print("Radius R of sphere S:", R)
Sphere S: center G, radius R
Locus condition: angle APG = 90° => (A-P)·(G-P) = 0
x,y,z = sp.symbols('x y z', real=True) P = sp.Matrix([x,y,z])
eq_sphere = sp.simplify((P-G).dot(P-G) - R**2) eq_right = sp.simplify((A-P).dot(G-P))
print("Sphere S equation (symbolic, =0):", eq_sphere) print("Right angle condition (symbolic, =0):", eq_right)
Solve for the circle: intersection of two spheres
We'll complete the square algebraically by subtracting the two equations suitably.
eq_sphere = P·P - 2 G·P + G·G - R^2 = 0
eq_right = P·P - (A+G)·P + A·G = 0
Subtract eq_right from eq_sphere to get linear equation in P representing plane of the circle.
PdotP = x2 + y2 + z2 eq1 = sp.expand(PdotP - 2*(G.dot(P)) + (G.dot(G) - R2)) eq2 = sp.expand(PdotP - (A+G).dot(P) + (A.dot(G))) plane_circle = sp.simplify(eq1 - eq2) # =0 print("Plane of circle T (equation =0):", plane_circle)
Simplify plane equation to normal form n_T · X + d = 0
plane_circle_simplified = sp.factor(plane_circle) print("Plane circle simplified:", plane_circle_simplified)
We'll extract coefficients of x,y,z and constant
coeff_x = sp.simplify(sp.diff(plane_circle_simplified, x)) coeff_y = sp.simplify(sp.diff(plane_circle_simplified, y)) coeff_z = sp.simplify(sp.diff(plane_circle_simplified, z))
print("coefficients (pre-normalization):", coeff_x, coeff_y, coeff_z)
Actually need to account that expression is linear: ax + by + c*z + d.
a, b, c = coeff_x, coeff_y, coeff_z d = sp.simplify(plane_circle_simplified.subs({x:0,y:0,z:0})) n_T = sp.Matrix([a,b,c]) print("n_T:", sp.simplify(n_T), "d:", d)
Now find center of circle T: intersection point of its plane with the line joining centers of the two spheres.
General fact: intersection circle of two spheres lies in plane perpendicular to line of centers;
Center of circle lies on that line. So parametrize line through G (center of S) and some center C2 of second sphere.
Find center C2 and radius of second sphere for eq_right.
We know form: P·P - (A+G)·P + A·G = 0
Compare with P·P - 2 C2·P + (C2·C2 - r2^2) = 0
C2 = (A+G)/2 r2_sq = C2.dot(C2) - A.dot(G) print("C2:", sp.simplify(C2)) print("r2^2:", sp.simplify(r2_sq))
Parametric line L(t) = G + t*(C2 - G)
t = sp.symbols('t', real=True) L = G + t*(C2 - G)
Plug into plane equation for circle (plane_circle_simplified=0) to solve for t to get center M of circle
plane_L = sp.simplify(plane_circle_simplified.subs({x:L[0], y:L[1], z:L[2]})) t_sol = sp.solve(sp.Eq(plane_L, 0), t) print("t solution(s):", t_sol)
t0 = sp.simplify(t_sol[0]) M = sp.simplify(L.subs(t, t0)) print("Center M of circle T:", M)
Radius of circle T: distance from M to intersection with sphere S along direction in plane.
Use that M lies in plane of circle; pick an orthonormal basis in that plane and compute radius via constraint equations.
Alternatively, use formula for intersection radius:
If two spheres with centers O1,O2 and radii R1,R2, and d=|O1O2|,
radius^2 = R1^2 - a^2 where a = distance from O1 to circle center along line of centers = (R1^2 - R2^2 + d^2)/(2d)
G_point = G O1 = G_point O2 = C2 R1_sq = R**2 R2_sq = r2_sq d_vec = O2 - O1 d_len = sp.sqrt(sp.simplify(d_vec.dot(d_vec))) print("d_len between centers:", sp.simplify(d_len))
a = sp.simplify((R1_sq - R2_sq + d_len2) / (2*d_len)) radius_T_sq = sp.simplify(R1_sq - a2) radius_T = sp.simplify(sp.sqrt(radius_T_sq)) print("Circle T radius^2:", radius_T_sq) print("Circle T radius:", radius_T)
Now area of circle T: pi * r^2
area_T = sp.simplify(sp.pi * radius_T_sq) print("Area of T (circle itself):", area_T)
Now projection onto plane ABC.
Need unit normal n_ABC of plane ABC, and unit normal of circle's plane n_T (already computed as n_T).
n_ABC = (B-A).cross(C-A) print("n_ABC (unnormalized):", sp.simplify(n_ABC))
Area of orthogonal projection of a region in a plane with normal n_T onto a plane with normal n_ABC
is area * |cos(theta)| where theta is angle between normals: cos(theta) = (n_T·n_ABC)/(|n_T||n_ABC|)
nT = n_T nABC = n_ABC cos_theta = sp.simplify((nT.dot(nABC)) / (sp.sqrt(nT.dot(nT))*sp.sqrt(nABC.dot(nABC)))) scale = sp.simplify(abs(cos_theta)) print("cos(theta) (abs):", scale)
area_proj = sp.simplify(area_T * scale) print("Projected area:", area_proj)
Express area_proj as pi/k
k = sp.simplify(sp.pi / area_proj) print("k =", k.simplify())
[THOUGHT] Using the verified Python computations, the projected area of locus T onto plane ABC is π/4, so k = 4. \boxed{4}