VarignonTheorem3DGeneral::usage="By joining the midpoints of each side of a quadrilateral, the figure is a parallelogram of area equal to half of the original quadrilateral (it is not fulfilled for skew quadrilaterals. If the quadrlateral is crossed, compare the areas with the parallelogram with the result QuadrilateralAreaCrossed). The perimeter of the parallelogram is equal to the sum of diagonals of the original quadrilateral. References: Personal, based in the Varignon's Theorem";
In[]:=
VarignonTheorem[{x1_,y1_,z1_},{x2_,y2_,z2_},{x3_,y3_,z3_},{x4_,y4_,z4_}]:=​​Module{},P1={x1,y1,z1};P2={x2,y2,z2};P3={x3,y3,z3};P4={x4,y4,z4};​​
A
q
=N
1
2
Norm[(P2-P1)(P4-P1)]+
1
2
Norm[(P2-P3)(P4-P3)];​​
A
q1
=AbsN
1
2
Norm[(P2-P1)(P4-P1)]-
1
2
Norm[(P2-P3)(P4-P3)];​​M1=
P1+P2
2
;M2=
P3+P2
2
;M3=
P3+P4
2
;​​M4=
P1+P4
2
;​​
A
p
=N[Norm[(M3-M4)(M1-M4)]];​​
P
p
=N[Norm[M1-M4]+Norm[M2-M1]+Norm[M2-M3]+Norm[M3-M4]];​​
P
p1
=N[Norm[P3-P1]+Norm[P4-P2]];​​p=Grid[{{QuadrilateralArea,QuadrilateralAreaCrossed,ParallelogramArea,ParallelogramPerimeter,DiagonalsSum},{
A
q
,
A
q1
,
A
p
,
P
p
,
P
p1
}},FrameAll,ItemSize->15,ItemStyle->15];​​q=Grid[{{ParallelogramVector1,ParallelogramVector3,ParallelogramVector2,ParallelogramVector4},{N[M4-M1],N[M3-M2],N[M2-M1],N[M3-M4]}},FrameAll,ItemSize->15,ItemStyle->15];​​Print[p];​​Print[" "];​​Print[q];​​Print[" "];​​Show[qua=Polygon[{P1,P2,P3,P4}];​​paral=Polygon[{M1,M2,M3,M4}];{Graphics3D[{EdgeForm[Thick],Yellow,Opacity[0.2],qua}],Graphics3D[{EdgeForm[Thick],Green,Opacity[0.8],paral}],Graphics3D[{Black,Ball[P1,0.1]}],Graphics3D[{Black,Ball[P2,0.1]}],Graphics3D[{Black,Ball[P3,0.1]}],Graphics3D[{Black,Ball[P4,0.1]}],Graphics3D[{LightGray,Ball[M1,0.1]}],Graphics3D[{LightGray,Ball[M2,0.1]}],Graphics3D[{LightGray,Ball[M3,0.1]}],Graphics3D[{LightGray,Ball[M4,0.1]}]},AxesLabel->{x,y,z},AxesOrigin{0,0,0},AxesTrue,BoxedFalse,BoxRatiosAutomatic,PlotRangeAll,ViewPoint{5,-2.4,1.},ImageSize700]​​​​​​
Example 1:
In[]:=
VarignonTheorem[{5,4,0},{10,-2,8},{5,9,1},{6,7,2}]
QuadrilateralArea
QuadrilateralAreaCrossed
ParallelogramArea
ParallelogramPerimeter
DiagonalsSum
22.7335
18.9918
11.0028
16.6316
16.6316
ParallelogramVector1
ParallelogramVector3
ParallelogramVector2
ParallelogramVector4
{-2.,4.5,-3.}
{-2.,4.5,-3.}
{0.,2.5,0.5}
{0.,2.5,0.5}
Out[]=
In this skew quadrilateral, Varignon’s theorem is not fulfilled in the first part (areas).
Example 2:
In[]:=
VarignonTheorem4,-
1
2
,3,12,
7
2
,7,16,
11
2
,-5,6,
1
2
,2
QuadrilateralArea
QuadrilateralAreaCrossed
ParallelogramArea
ParallelogramPerimeter
DiagonalsSum
60.3738
42.4853
30.1869
23.9871
23.9871
ParallelogramVector1
ParallelogramVector3
ParallelogramVector2
ParallelogramVector4
{-3.,-1.5,-2.5}
{-3.,-1.5,-2.5}
{6.,3.,-4.}
{6.,3.,-4.}
Out[]=
In this concave quadrilateral, Varignon’s theorem is fulfilled.
Example 3:
In[]:=
VarignonTheorem[{1,1,0},{5,4,0},{2,4,0},{5,0,0}]
QuadrilateralArea
QuadrilateralAreaCrossed
ParallelogramArea
ParallelogramPerimeter
DiagonalsSum
14.
2.
1.
7.16228
7.16228
ParallelogramVector1
ParallelogramVector3
ParallelogramVector2
ParallelogramVector4
{0.,-2.,0.}
{0.,-2.,0.}
{0.5,1.5,0.}
{0.5,1.5,0.}
Out[]=
In this crossed quadrilateral, Varignon’s theorem is fulfilled.
Example 4:
In this convex quadrilateral, Varignon’s theorem is fulfilled.