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};=NNorm[(P2-P1)(P4-P1)]+Norm[(P2-P3)(P4-P3)];=AbsNNorm[(P2-P1)(P4-P1)]-Norm[(P2-P3)(P4-P3)];M1=;M2=;M3=;M4=;=N[Norm[(M3-M4)(M1-M4)]];=N[Norm[M1-M4]+Norm[M2-M1]+Norm[M2-M3]+Norm[M3-M4]];=N[Norm[P3-P1]+Norm[P4-P2]];p=Grid[{{QuadrilateralArea,QuadrilateralAreaCrossed,ParallelogramArea,ParallelogramPerimeter,DiagonalsSum},{,,,,}},FrameAll,ItemSize->15,ItemStyle->15];q=Grid[{{ParallelogramVector1,ParallelogramVector3,ParallelogramVector2,ParallelogramVector4},{N[M4-M1],N[M3-M2],N[M2-M1],N[M3-M4]}},FrameAll,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},AxesTrue,BoxedFalse,BoxRatiosAutomatic,PlotRangeAll,ViewPoint{5,-2.4,1.},ImageSize700]
A
q
1
2
1
2
A
q1
1
2
1
2
P1+P2
2
P3+P2
2
P3+P4
2
P1+P4
2
A
p
P
p
P
p1
A
q
A
q1
A
p
P
p
P
p1
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[]:=
VarignonTheorem4,-,3,12,,7,16,,-5,6,,2
1
2
7
2
11
2
1
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.