Boy Surface: Parametric Equation Construction and Visualization
Loading the math board and drawing, please wait…
In collections
geometriadinamica.es
This example demonstrates the construction and 3D visualization of the Boy surface, a classic non-orientable surface in differential geometry and topology. Construction highlights: 1) Use CurveCartesian command to plot the Boy surface according to its parametric equations; 2) Generate surface point sequences via Sequence command; 3) Build angle parameters needed for parametric equations using Ellipse and Angle commands; 4) Complete auxiliary geometric constructions with Circle and Intersect. This example is ideal for university-level differential geometry courses as a visual teaching aid, and can also serve as an introductory topology teaching tool for explaining non-orientable surfaces and their relationship to the Möbius strip.
GeoGebra Commands & Parameters
Segment(Q5, Q6) → p5Point(p5) → P5Segment(Q3, Q4) → p2Point(p2) → P3Segment(P3, Q4) → p4Point(p4) → P4Segment(Q1, Q2) → p1Point(p1) → P1Segment(P1, Q2) → p3Point(p3) → P2OrthogonalLine(C, xAxis) → zz2Circle(C, 0.62) → zz0Intersect(zz0, zz2, 1) → ZZ4Intersect(zz0, zz2, 2) → ZZ3Ellipse(ZZ3, ZZ4, 0.65) → zElipse2Point(zElipse2) → ZIntersect(zElipse2, zz2) → ZZ7, ZZ8Angle(ZZ8, C, Z) → zAngIncOrthogonalLine(C, yAxis) → zz1Intersect(zz0, zz1, 2) → ZZ2Intersect(zz0, zz1, 1) → ZZ1Ellipse(ZZ1, ZZ2, 0.65) → zElipse1Point(zElipse1) → XYIntersect(zElipse1, zz1) → ZZ5, ZZ6Angle(ZZ6, C, XY) → zAngRotSegment(ZZ5, ZZ6) → zz4Segment(ZZ7, ZZ8) → zz3Intersect(zElipse2, zElipse1, 1) → zPunto1Intersect(zElipse2, zElipse1, 4) → zPunto2Segment(zPunto1, zPunto2) → zSeg2CurveCartesian((r * (((1 / 2 * ((2 * ((cos(α) * sin(v)))^(2)) - ((sin(α) * sin(v)))^(2) - (cos(v))^(2) + ((((2 * sin(α)) * sin(v)) * cos(v)) * (((sin(α) * sin(v)))^(2) - (cos(v))^(2))) + (((cos(v) * cos(α)) * sin(v)) * (((cos(α) * sin(v)))^(2) - (cos(v))^(2))) + ((((cos(α) * sin(v)) * sin(α)) * sin(v)) * (((sin(α) * sin(v)))^(2) - ((cos(α) * sin(v)))^(2))))) * sin(zAngRot)) + ((sqrt(3) / 2 * (((sin(α) * sin(v)))^(2) - (cos(v))^(2) + (((cos(v) * cos(α)) * sin(v)) * ((cos(v))^(2) - ((cos(α) * sin(v)))^(2))) + ((((cos(α) * sin(v)) * sin(α)) * sin(v)) * (((sin(α) * sin(v)))^(2) - ((cos(α) * sin(v)))^(2))))) * cos(zAngRot)))), (r * ((((-1 / 2 * ((2 * ((cos(α) * sin(v)))^(2)) - ((sin(α) * sin(v)))^(2) - (cos(v))^(2) + ((((2 * sin(α)) * sin(v)) * cos(v)) * (((sin(α) * sin(v)))^(2) - (cos(v))^(2))) + (((cos(v) * cos(α)) * sin(v)) * (((cos(α) * sin(v)))^(2) - (cos(v))^(2))) + ((((cos(α) * sin(v)) * sin(α)) * sin(v)) * (((sin(α) * sin(v)))^(2) - ((cos(α) * sin(v)))^(2))))) * cos(zAngRot)) * sin(zAngInc)) + (((sqrt(3) / 2 * (((sin(α) * sin(v)))^(2) - (cos(v))^(2) + (((cos(v) * cos(α)) * sin(v)) * ((cos(v))^(2) - ((cos(α) * sin(v)))^(2))) + ((((cos(α) * sin(v)) * sin(α)) * sin(v)) * (((sin(α) * sin(v)))^(2) - ((cos(α) * sin(v)))^(2))))) * sin(zAngRot)) * sin(zAngInc)) + ((((cos(α) * sin(v)) + (sin(α) * sin(v)) + cos(v)) * (((cos(α) * sin(v)) + (sin(α) * sin(v)) + cos(v))^(3) + (((4 * ((sin(α) * sin(v)) - (cos(α) * sin(v)))) * (cos(v) - (sin(α) * sin(v)))) * ((cos(α) * sin(v)) - cos(v))))) * cos(zAngInc)))) - 2, v, v1, v2) → curva2CurveCartesian((r * (((1 / 2 * ((2 * ((cos(u) * sin(3.14159 / 2)))^(2)) - ((sin(u) * sin(3.14159 / 2)))^(2) - (cos(3.14159 / 2))^(2) + ((((2 * sin(u)) * sin(3.14159 / 2)) * cos(3.14159 / 2)) * (((sin(u) * sin(3.14159 / 2)))^(2) - (cos(3.14159 / 2))^(2))) + (((cos(3.14159 / 2) * cos(u)) * sin(3.14159 / 2)) * (((cos(u) * sin(3.14159 / 2)))^(2) - (cos(3.14159 / 2))^(2))) + ((((cos(u) * sin(3.14159 / 2)) * sin(u)) * sin(3.14159 / 2)) * (((sin(u) * sin(3.14159 / 2)))^(2) - ((cos(u) * sin(3.14159 / 2)))^(2))))) * sin(zAngRot)) + ((sqrt(3) / 2 * (((sin(u) * sin(3.14159 / 2)))^(2) - (cos(3.14159 / 2))^(2) + (((cos(3.14159 / 2) * cos(u)) * sin(3.14159 / 2)) * ((cos(3.14159 / 2))^(2) - ((cos(u) * sin(3.14159 / 2)))^(2))) + ((((cos(u) * sin(3.14159 / 2)) * sin(u)) * sin(3.14159 / 2)) * (((sin(u) * sin(3.14159 / 2)))^(2) - ((cos(u) * sin(3.14159 / 2)))^(2))))) * cos(zAngRot)))), (r * ((((-1 / 2 * ((2 * ((cos(u) * sin(3.14159 / 2)))^(2)) - ((sin(u) * sin(3.14159 / 2)))^(2) - (cos(3.14159 / 2))^(2) + ((((2 * sin(u)) * sin(3.14159 / 2)) * cos(3.14159 / 2)) * (((sin(u) * sin(3.14159 / 2)))^(2) - (cos(3.14159 / 2))^(2))) + (((cos(3.14159 / 2) * cos(u)) * sin(3.14159 / 2)) * (((cos(u) * sin(3.14159 / 2)))^(2) - (cos(3.14159 / 2))^(2))) + ((((cos(u) * sin(3.14159 / 2)) * sin(u)) * sin(3.14159 / 2)) * (((sin(u) * sin(3.14159 / 2)))^(2) - ((cos(u) * sin(3.14159 / 2)))^(2))))) * cos(zAngRot)) * sin(zAngInc)) + (((sqrt(3) / 2 * (((sin(u) * sin(3.14159 / 2)))^(2) - (cos(3.14159 / 2))^(2) + (((cos(3.14159 / 2) * cos(u)) * sin(3.14159 / 2)) * ((cos(3.14159 / 2))^(2) - ((cos(u) * sin(3.14159 / 2)))^(2))) + ((((cos(u) * sin(3.14159 / 2)) * sin(u)) * sin(3.14159 / 2)) * (((sin(u) * sin(3.14159 / 2)))^(2) - ((cos(u) * sin(3.14159 / 2)))^(2))))) * sin(zAngRot)) * sin(zAngInc)) + ((((cos(u) * sin(3.14159 / 2)) + (sin(u) * sin(3.14159 / 2)) + cos(3.14159 / 2)) * (((cos(u) * sin(3.14159 / 2)) + (sin(u) * sin(3.14159 / 2)) + cos(3.14159 / 2))^(3) + (((4 * ((sin(u) * sin(3.14159 / 2)) - (cos(u) * sin(3.14159 / 2)))) * (cos(3.14159 / 2) - (sin(u) * sin(3.14159 / 2)))) * ((cos(u) * sin(3.14159 / 2)) - cos(3.14159 / 2))))) * cos(zAngInc)))) - 2, u, u1, u2) → curva1CurveCartesian((r * (((1 / 2 * ((2 * ((cos(u) * sin(β)))^(2)) - ((sin(u) * sin(β)))^(2) - (cos(β))^(2) + ((((2 * sin(u)) * sin(β)) * cos(β)) * (((sin(u) * sin(β)))^(2) - (cos(β))^(2))) + (((cos(β) * cos(u)) * sin(β)) * (((cos(u) * sin(β)))^(2) - (cos(β))^(2))) + ((((cos(u) * sin(β)) * sin(u)) * sin(β)) * (((sin(u) * sin(β)))^(2) - ((cos(u) * sin(β)))^(2))))) * sin(zAngRot)) + ((sqrt(3) / 2 * (((sin(u) * sin(β)))^(2) - (cos(β))^(2) + (((cos(β) * cos(u)) * sin(β)) * ((cos(β))^(2) - ((cos(u) * sin(β)))^(2))) + ((((cos(u) * sin(β)) * sin(u)) * sin(β)) * (((sin(u) * sin(β)))^(2) - ((cos(u) * sin(β)))^(2))))) * cos(zAngRot)))), (r * ((((-1 / 2 * ((2 * ((cos(u) * sin(β)))^(2)) - ((sin(u) * sin(β)))^(2) - (cos(β))^(2) + ((((2 * sin(u)) * sin(β)) * cos(β)) * (((sin(u) * sin(β)))^(2) - (cos(β))^(2))) + (((cos(β) * cos(u)) * sin(β)) * (((cos(u) * sin(β)))^(2) - (cos(β))^(2))) + ((((cos(u) * sin(β)) * sin(u)) * sin(β)) * (((sin(u) * sin(β)))^(2) - ((cos(u) * sin(β)))^(2))))) * cos(zAngRot)) * sin(zAngInc)) + (((sqrt(3) / 2 * (((sin(u) * sin(β)))^(2) - (cos(β))^(2) + (((cos(β) * cos(u)) * sin(β)) * ((cos(β))^(2) - ((cos(u) * sin(β)))^(2))) + ((((cos(u) * sin(β)) * sin(u)) * sin(β)) * (((sin(u) * sin(β)))^(2) - ((cos(u) * sin(β)))^(2))))) * sin(zAngRot)) * sin(zAngInc)) + ((((cos(u) * sin(β)) + (sin(u) * sin(β)) + cos(β)) * (((cos(u) * sin(β)) + (sin(u) * sin(β)) + cos(β))^(3) + (((4 * ((sin(u) * sin(β)) - (cos(u) * sin(β)))) * (cos(β) - (sin(u) * sin(β)))) * ((cos(u) * sin(β)) - cos(β))))) * cos(zAngInc)))) - 2, u, u1, (2 * u2)) → a1Sequence(CurveCartesian[(r * (((1 / 2 * ((2 * ((cos(u) * sin(v)))^(2)) - ((sin(u) * sin(v)))^(2) - (cos(v))^(2) + ((((2 * sin(u)) * sin(v)) * cos(v)) * (((sin(u) * sin(v)))^(2) - (cos(v))^(2))) + (((cos(v) * cos(u)) * sin(v)) * (((cos(u) * sin(v)))^(2) - (cos(v))^(2))) + ((((cos(u) * sin(v)) * sin(u)) * sin(v)) * (((sin(u) * sin(v)))^(2) - ((cos(u) * sin(v)))^(2))))) * sin(zAngRot)) + ((sqrt(3) / 2 * (((sin(u) * sin(v)))^(2) - (cos(v))^(2) + (((cos(v) * cos(u)) * sin(v)) * ((cos(v))^(2) - ((cos(u) * sin(v)))^(2))) + ((((cos(u) * sin(v)) * sin(u)) * sin(v)) * (((sin(u) * sin(v)))^(2) - ((cos(u) * sin(v)))^(2))))) * cos(zAngRot)))), (r * ((((-1 / 2 * ((2 * ((cos(u) * sin(v)))^(2)) - ((sin(u) * sin(v)))^(2) - (cos(v))^(2) + ((((2 * sin(u)) * sin(v)) * cos(v)) * (((sin(u) * sin(v)))^(2) - (cos(v))^(2))) + (((cos(v) * cos(u)) * sin(v)) * (((cos(u) * sin(v)))^(2) - (cos(v))^(2))) + ((((cos(u) * sin(v)) * sin(u)) * sin(v)) * (((sin(u) * sin(v)))^(2) - ((cos(u) * sin(v)))^(2))))) * cos(zAngRot)) * sin(zAngInc)) + (((sqrt(3) / 2 * (((sin(u) * sin(v)))^(2) - (cos(v))^(2) + (((cos(v) * cos(u)) * sin(v)) * ((cos(v))^(2) - ((cos(u) * sin(v)))^(2))) + ((((cos(u) * sin(v)) * sin(u)) * sin(v)) * (((sin(u) * sin(v)))^(2) - ((cos(u) * sin(v)))^(2))))) * sin(zAngRot)) * sin(zAngInc)) + ((((cos(u) * sin(v)) + (sin(u) * sin(v)) + cos(v)) * (((cos(u) * sin(v)) + (sin(u) * sin(v)) + cos(v))^(3) + (((4 * ((sin(u) * sin(v)) - (cos(u) * sin(v)))) * (cos(v) - (sin(u) * sin(v)))) * ((cos(u) * sin(v)) - cos(v))))) * cos(zAngInc)))) - 2, u, u1, u2], v, v1, v2, paso) → list2Sequence(CurveCartesian[(r * (((1 / 2 * ((2 * ((cos(u) * sin(v)))^(2)) - ((sin(u) * sin(v)))^(2) - (cos(v))^(2) + ((((2 * sin(u)) * sin(v)) * cos(v)) * (((sin(u) * sin(v)))^(2) - (cos(v))^(2))) + (((cos(v) * cos(u)) * sin(v)) * (((cos(u) * sin(v)))^(2) - (cos(v))^(2))) + ((((cos(u) * sin(v)) * sin(u)) * sin(v)) * (((sin(u) * sin(v)))^(2) - ((cos(u) * sin(v)))^(2))))) * sin(zAngRot)) + ((sqrt(3) / 2 * (((sin(u) * sin(v)))^(2) - (cos(v))^(2) + (((cos(v) * cos(u)) * sin(v)) * ((cos(v))^(2) - ((cos(u) * sin(v)))^(2))) + ((((cos(u) * sin(v)) * sin(u)) * sin(v)) * (((sin(u) * sin(v)))^(2) - ((cos(u) * sin(v)))^(2))))) * cos(zAngRot)))), (r * ((((-1 / 2 * ((2 * ((cos(u) * sin(v)))^(2)) - ((sin(u) * sin(v)))^(2) - (cos(v))^(2) + ((((2 * sin(u)) * sin(v)) * cos(v)) * (((sin(u) * sin(v)))^(2) - (cos(v))^(2))) + (((cos(v) * cos(u)) * sin(v)) * (((cos(u) * sin(v)))^(2) - (cos(v))^(2))) + ((((cos(u) * sin(v)) * sin(u)) * sin(v)) * (((sin(u) * sin(v)))^(2) - ((cos(u) * sin(v)))^(2))))) * cos(zAngRot)) * sin(zAngInc)) + (((sqrt(3) / 2 * (((sin(u) * sin(v)))^(2) - (cos(v))^(2) + (((cos(v) * cos(u)) * sin(v)) * ((cos(v))^(2) - ((cos(u) * sin(v)))^(2))) + ((((cos(u) * sin(v)) * sin(u)) * sin(v)) * (((sin(u) * sin(v)))^(2) - ((cos(u) * sin(v)))^(2))))) * sin(zAngRot)) * sin(zAngInc)) + ((((cos(u) * sin(v)) + (sin(u) * sin(v)) + cos(v)) * (((cos(u) * sin(v)) + (sin(u) * sin(v)) + cos(v))^(3) + (((4 * ((sin(u) * sin(v)) - (cos(u) * sin(v)))) * (cos(v) - (sin(u) * sin(v)))) * ((cos(u) * sin(v)) - cos(v))))) * cos(zAngInc)))) - 2, v, v1, v2], u, u1, u2, paso) → list1
AI Drawing Prompt Reference
Draw the Boy surface, a classic non-orientable surface. First, draw two ellipses and a circle. The ellipses intersect the circle to obtain angle points. Construct reference points. Then, use angles and ellipse parameters to generate points, and connect them with a sequence to form a curve. Finally, visualize the curve.
The prompt above was compiled from the original drawing commands and is for reference only.