A k--arc in a projective or affine plane P is a set of k points of P, no three of which are collinear. A k--arc is complete if it cannot be extended to a (k + 1)--arc by the addition of another point. A tangent to an arc A is a line which meets A exactly once; a secant is a line which meets A exactly twice; and a passant, or external line, is a line which does not meet A at all.
Return a k--arc for the plane P.
Return a complete k--arc for the plane P (if one exists).
Returns true if the set of points A is an arc in the plane P, i.e. no three points of A are collinear.
Returns true if the k--arc A is complete in the plane P.
Given a set S of five points belonging to a classical projective plane P of order n > 3 and being in general position, construct the unique conic that passes through them.
Given a set S of five points belonging to a classical projective plane of order n > 3 that are in general position, return the quadratic form defining the conic containing the five points.
Given an arc A in the plane P, and a point p on A, return a tangent to A at p.
Given an arc A in the plane P, return the set of tangent lines to A.
Given an arc A in the plane P, return the set of secant lines to A.
Given an arc A in the plane P, return the set of external lines to A.
Given a conic C in the projective plane P of even order, return the knot of the conic C, i.e the intersection point of the tangents to C.
Given a conic C in the projective plane P of odd order, return the exterior points of C, i.e. the points of P that lie on two tangents of C.
Given a conic C in the projective plane P of odd order, return the interior points of C, i.e. the points of P that do not lie on any tangent of C.
> P, V, L := FiniteProjectivePlane(16); > oval := kArc(P, 18); > pts := Points(P) diff oval; > lns := ExternalLines(P, oval); > I := IncidenceStructure< SetToIndexedSet(pts) | [l meet pts : l in lns] >; > D := Design(Dual(I), 2); > D; 2-(120, 8, 1) Design with 255 blocksThe next example uses various functions discussed so far, and shows the relationship between a plane and its subplanes.
> K<w> := GF(9); > P, V, L := FiniteProjectivePlane(K); > c := kArc(P, 5); > c; { ( 1 : 0 : 0 ), ( 0 : 1 : 0 ), ( 0 : 0 : 1 ), ( 1 : 2 : w^3 ), ( 1 : w : w) } > C := Conic(P, c); > C; { ( 1 : 0 : 0 ), ( 0 : 1 : 0 ), ( 0 : 0 : 1 ), ( 1 : 2 : w^3 ), ( 1 : w : w), ( 1 : w^5 : w^6 ), ( 1 : w^7 : 2 ), ( 1 : w^2 : 1 ), ( 1 : w^3 : w^5 ), ( 1 : w^6 : w^2 ) } > #C; 10 > #Interior(P, C); 36 > > S, SV, SL := SubfieldSubplane(P, GF(3)); > S subset P; true > a := kArc(S, 4); > IsArc(S, a); true > IsArc(P, a); true > IsComplete(S, a); true > IsComplete(P, a); false > a; { ( 1 : 0 : 0 ), ( 0 : 1 : 0 ), ( 0 : 0 : 1 ), ( 1 : 2 : 1 ) } > S2 := sub< P | a >; > S2; Projective Plane of order 3 > S2 eq S; true > p := Random(a); > p; ( 1 : 2 : 1 ) > Tangent(S, a, p); < 1 : 2 : 1 > > AllTangents(S, a); { < 1 : 2 : 0 >, < 0 : 1 : 2 >, < 1 : 2 : 1 >, < 1 : 0 : 1 > } > AllTangents(P, a); { < 1 : w^5 : w^6 >, < 1 : 0 : w >, < 1 : w^2 : w >, < 1 : 0 : w^6 >, < 1 : 0 : 1 >, < 1 : w^6 : w^3 >, < 1 : w^6 : 0 >, < 0 : 1 : w^6 >, < 1 : 2 : 0 >, < 0 : 1 : 2 >, < 1 : 2 : 1 >, < 1 : w^3 : w^5 >, < 1 : 0 : w^7 >, < 1 : 0 : w^2 >, < 1 : w : 0 >, < 0 : 1 : w >, < 1 : 0 : w^5 >, < 1 : 0 : w^3 >, < 1 : w : w^7 >, < 1 : w^3 : 0 >, < 0 : 1 : w^3 >, < 1 : w^7 : w^2 >, < 1 : w^5 : 0 >, < 0 : 1 : w^5 >, < 1 : w^7 : 0 >, < 0 : 1 : w^7 >, < 1 : w^2 : 0 >, < 0 : 1 : w^2 > }