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.
kArc(P, k) : Plane, RngIntElt -> SetEnum
Return a k-arc for the plane P.
Return a complete k-arc for the plane P (if one exists).
True if the set of points A is an arc in the plane P, i.e. no three points of A are collinear.
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 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 := ProjectivePlane(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 := ProjectivePlane(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 >
}