Carré

Rectangle

Losange

Parallélogramme

Fer de lance

Cerf-volant

Trapèze quelconque

Trapèze rectangle

Trapèze isocèle

Quadrilatère quelconque

Attention à ne pas aligner ou superposer les points.

Quadrilatère croisé

Afficher les caractéristiques

A = (2.5, 2.25)
B = (1.5, 2.25)
C = (1.5, 3.25)
D = (2.5, 3.25)
AB = Vector(A, B)
DC = Vector(D, C)
AD = Vector(A, D)
BC = Vector(B, C)
para_{abdc} = If(DC / Length[DC] * Length[AB] ≟ AB, true, false)
para_{adbc} = If(AD / Length[AD] * Length[BC] ≟ BC, true, false)
long_a = If(Length[AD] ≟ Length[AB], true, false)
long_b = If(Length[AB] ≟ Length[BC], true, false)
long_c = If(Length[BC] ≟ Length[DC], true, false)
long_d = If(Length[DC] ≟ Length[AD], true, false)
perp_b = If(x(AB) * x(BC) + y(AB) * y(BC) ≟ 0.0, true, false)
perp_c = If(x(BC) * x(DC) + y(BC) * y(DC) ≟ 0.0, true, false)
perp_d = If(x(AD) * x(DC) + y(AD) * y(DC) ≟ 0.0, true, false)
perp_a = If(x(AD) * x(AB) + y(AD) * y(AB) ≟ 0.0, true, false)
M = Intersect(Line[A, C], Line[B, D])
concave_a = If(Vector[M, A] / Distance[M, A] * Distance[M, C] ≟ Vector[M, C] ∧ Distance[M, A] < Distance[M, C], true, false)
concave_c = If(Vector[M, C] / Distance[M, C] * Distance[M, A] ≟ Vector[M, A] ∧ Distance[M, C] < Distance[M, A], true, false)
concave_b = If(Vector[M, B] / Distance[M, B] * Distance[M, D] ≟ Vector[M, D] ∧ Distance[M, B] < Distance[M, D], true, false)
concave_d = If(Vector[M, D] / Distance[M, D] * Distance[M, B] ≟ Vector[M, B] ∧ Distance[M, D] < Distance[M, B], true, false)
lon_{abcd} = If(Length[AB] ≟ Length[DC], true, false)
lon_{adbc} = If(Length[AD] ≟ Length[BC], true, false)
carre = If(long_a ∧ long_b ∧ long_c ∧ long_d ∧ lon_{abcd} ∧ lon_{adbc} ∧ para_{abdc} ∧ para_{adbc} ∧ perp_a ∧ perp_b ∧ perp_c ∧ perp_d ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
rectangle = If((¬long_a) ∧ (¬long_b) ∧ (¬long_c) ∧ (¬long_d) ∧ lon_{abcd} ∧ lon_{adbc} ∧ para_{abdc} ∧ para_{adbc} ∧ perp_a ∧ perp_b ∧ perp_c ∧ perp_d ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
parall = If((¬long_a) ∧ (¬long_b) ∧ (¬long_c) ∧ (¬long_d) ∧ lon_{abcd} ∧ lon_{adbc} ∧ para_{abdc} ∧ para_{adbc} ∧ (¬perp_a) ∧ (¬perp_b) ∧ (¬perp_c) ∧ (¬perp_d) ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
losange = If(long_a ∧ long_b ∧ long_c ∧ long_d ∧ lon_{abcd} ∧ lon_{adbc} ∧ para_{abdc} ∧ para_{adbc} ∧ (¬perp_a) ∧ (¬perp_b) ∧ (¬perp_c) ∧ (¬perp_d) ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
fer_b = If((¬long_a) ∧ long_b ∧ (¬long_c) ∧ long_d ∧ (¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ (¬para_{abdc}) ∧ (¬para_{adbc}) ∧ (¬perp_a) ∧ (¬perp_c) ∧ (¬concave_a) ∧ concave_b ∧ (¬concave_c) ∧ (¬concave_d), true, false)
fer_d = If((¬long_a) ∧ long_b ∧ (¬long_c) ∧ long_d ∧ (¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ (¬para_{abdc}) ∧ (¬para_{adbc}) ∧ (¬perp_a) ∧ (¬perp_c) ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ concave_d, true, false)
fer_a = If(long_a ∧ (¬long_b) ∧ long_c ∧ (¬long_d) ∧ (¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ (¬para_{abdc}) ∧ (¬para_{adbc}) ∧ (¬perp_b) ∧ (¬perp_d) ∧ concave_a ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
fer_c = If(long_a ∧ (¬long_b) ∧ long_c ∧ (¬long_d) ∧ (¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ (¬para_{abdc}) ∧ (¬para_{adbc}) ∧ (¬perp_b) ∧ (¬perp_d) ∧ (¬concave_a) ∧ (¬concave_b) ∧ concave_c ∧ (¬concave_d), true, false)
fer = If(fer_a ∨ fer_b ∨ fer_c ∨ fer_d, true, false)
cerf_1 = If((¬long_a) ∧ long_b ∧ (¬long_c) ∧ long_d ∧ (¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ (¬para_{abdc}) ∧ (¬para_{adbc}) ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
cerf_2 = If(long_a ∧ (¬long_b) ∧ long_c ∧ (¬long_d) ∧ (¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ (¬para_{abdc}) ∧ (¬para_{adbc}) ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
cerf = If(cerf_1 ∨ cerf_2, true, false)
trapQQ_1 = If((¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ para_{abdc} ∧ (¬para_{adbc}) ∧ (¬perp_a) ∧ (¬perp_b) ∧ (¬perp_c) ∧ (¬perp_d) ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
trapQQ_2 = If((¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ (¬para_{abdc}) ∧ para_{adbc} ∧ (¬perp_a) ∧ (¬perp_b) ∧ (¬perp_c) ∧ (¬perp_d) ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
trapQQ = If(trapQQ_1 ∨ trapQQ_2, true, false)
trapREC_1 = If((¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ (¬para_{abdc}) ∧ para_{adbc} ∧ perp_a ∧ perp_b ∧ (¬perp_c) ∧ (¬perp_d) ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
trapREC_2 = If((¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ (¬para_{abdc}) ∧ para_{adbc} ∧ (¬perp_a) ∧ (¬perp_b) ∧ perp_c ∧ perp_d ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
trapREC_3 = If((¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ para_{abdc} ∧ (¬para_{adbc}) ∧ perp_a ∧ (¬perp_b) ∧ (¬perp_c) ∧ perp_d ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
trapREC_4 = If((¬lon_{abcd}) ∧ (¬lon_{adbc}) ∧ para_{abdc} ∧ (¬para_{adbc}) ∧ (¬perp_a) ∧ perp_b ∧ perp_c ∧ (¬perp_d) ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
trapREC = If(trapREC_1 ∨ trapREC_2 ∨ trapREC_3 ∨ trapREC_4, true, false)
trapISO_1 = If(lon_{abcd} ∧ (¬lon_{adbc}) ∧ (¬para_{abdc}) ∧ para_{adbc} ∧ (¬perp_a) ∧ (¬perp_b) ∧ (¬perp_c) ∧ (¬perp_d) ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
trapISO_2 = If((¬lon_{abcd}) ∧ lon_{adbc} ∧ para_{abdc} ∧ (¬para_{adbc}) ∧ (¬perp_a) ∧ (¬perp_b) ∧ (¬perp_c) ∧ (¬perp_d) ∧ (¬concave_a) ∧ (¬concave_b) ∧ (¬concave_c) ∧ (¬concave_d), true, false)
trapISO = If(trapISO_1 ∨ trapISO_2, true, false)
cote_{ab} = Segment(B, A)
cote_{bc} = Segment(B, C)
cpte_{dc} = Segment(C, D)
cote_{da} = Segment(D, A)
ali_a = If(Distance[A, Line[B, D]] ≟ 0.0, true, false)
ali_b = If(Distance[B, Line[A, C]] ≟ 0.0, true, false)
ali_c = If(Distance[C, Line[B, D]] ≟ 0.0, true, false)
ali_d = If(Distance[D, Line[A, C]] ≟ 0.0, true, false)
ali = If(ali_a ∨ ali_b ∨ ali_c ∨ ali_d ∨ A ≟ C ∨ D ≟ B, true, false)
E = Intersect(cote_{ab}, cpte_{dc})
Def_{abcd} = Defined(E)
F = Intersect(cote_{bc}, cote_{da})
Def_{adbc} = Defined(F)
croise = If(Def_{abcd} ∨ Def_{adbc}, true, false)
Dessin = If(ali, At, If[croise, Cr, If[carre, Ca, If[cerf, Ce, If[fer, Fe, If[losange, Lo, If[parall, Pa, If[rectangle, Re, If[trapISO, Ti, If[trapQQ, Tq, If[trapREC, Tr, Qu]]]]]]]]]])
card = Length(Union[{A, B, C, D}, {}])
β = Angle(If[Angle[A, B, C] < Angle[C, B, A], A, C], B, If[Angle[A, B, C] < Angle[C, B, A], C, A])
α = Angle(If[Angle[B, A, D] < Angle[D, A, B], B, D], A, If[Angle[B, A, D] < Angle[D, A, B], D, B])
γ = Angle(If[Angle[B, C, D] < Angle[D, C, B], B, D], C, If[Angle[B, C, D] < Angle[D, C, B], D, B])
δ = Angle(If[Angle[A, D, C] < Angle[C, D, A], A, C], D, If[Angle[A, D, C] < Angle[C, D, A], C, A])
qqchose = If(carre ∨ cerf ∨ fer ∨ losange ∨ parall ∨ rectangle ∨ trapISO ∨ trapQQ ∨ trapREC, true, false)
ma_1 = Segment(A, M)
mb_1 = Segment(M, B)
mc_1 = Segment(M, C)
md_1 = Segment(M, D)
ab_1 = Segment(A, B)
bc_1 = Segment(B, C)
cd_1 = Segment(C, D)
da_1 = Segment(D, A)
ab_2 = Segment(A, B)
bc_2 = Segment(B, C)
cd_2 = Segment(C, D)
da_2 = Segment(D, A)
ma_2 = Segment(A, M)
mb_2 = Segment(M, B)
mc_2 = Segment(M, C)
md_2 = Segment(M, D)
ma_3 = Segment(A, M)
mb_3 = Segment(M, B)
mc_3 = Segment(M, C)
md_3 = Segment(M, D)
μ = Angle(If[Angle[A, M, B] < Angle[B, M, A], A, B], M, If[Angle[A, M, B] < Angle[B, M, A], B, A])
ma_0 = Segment(A, M)
mb_0 = Segment(M, B)
mc_0 = Segment(M, C)
md_0 = Segment(M, D)
ma_4 = Segment(M, A)
mb_4 = Segment(M, B)
mc_4 = Segment(M, C)
md_4 = Segment(M, D)
ab_3 = Segment(A, B)
bc_3 = Segment(B, C)
cd_3 = Segment(C, D)
da_3 = Segment(D, A)
α_1 = Angle(If[Angle[B, A, D] < Angle[D, A, B], B, D], A, If[Angle[B, A, D] < Angle[D, A, B], D, B])
β_1 = Angle(If[Angle[A, B, C] < Angle[C, B, A], A, C], B, If[Angle[A, B, C] < Angle[C, B, A], C, A])
γ_1 = Angle(If[Angle[B, C, D] < Angle[D, C, B], B, D], C, If[Angle[B, C, D] < Angle[D, C, B], D, B])
γ_2 = Angle(If[Angle[B, C, D] < Angle[D, C, B], B, D], C, If[Angle[B, C, D] < Angle[D, C, B], D, B])
β_2 = Angle(If[Angle[A, B, C] < Angle[C, B, A], A, C], B, If[Angle[A, B, C] < Angle[C, B, A], C, A])
α_2 = Angle(If[Angle[B, A, D] < Angle[D, A, B], B, D], A, If[Angle[B, A, D] < Angle[D, A, B], D, B])
δ_1 = Angle(If[Angle[A, D, C] < Angle[C, D, A], A, C], D, If[Angle[A, D, C] < Angle[C, D, A], C, A])
δ_2 = Angle(If[Angle[A, D, C] < Angle[C, D, A], A, C], D, If[Angle[A, D, C] < Angle[C, D, A], C, A])
g = false
sym_2 = Segment(Midpoint[A, D] + Vector[M, Midpoint[A, D]] / Distance[M, Midpoint[A, D]] * 0.125, Midpoint[C, B] - Vector[M, Midpoint[A, D]] / Distance[M, Midpoint[A, D]] * 0.125)
sym_1 = Segment(Midpoint[A, B] + Vector[M, Midpoint[A, B]] / Distance[M, Midpoint[A, B]] * 0.125, Midpoint[C, D] - Vector[M, Midpoint[A, B]] / Distance[M, Midpoint[A, B]] * 0.125)