how to do tri-sector partition in my hexagon?
1 次查看(过去 30 天)
显示 更早的评论
Hai all..
Can i do tri-sector partition in my hexagon?Because, i have tried many time but did not working..if can...how?
0 个评论
回答(1 个)
Roger Stafford
2013-6-28
编辑:Roger Stafford
2013-6-28
The explanation you give is far from complete, but it suggests the following interesting problem which makes it worth working on. Perhaps you have an irregular hexagon and you are trying to find some "central" point inside the hexagon with the property that if three lines are drawn to alternate vertices, the hexagon is thereby partitioned into three quadrilaterals of equal area. Could that possibly be what you have in mind?
If so, the following is a matlab solution. Let
P1 = (x1,y1)
P2 = (x2,y2)
P3 = (x3,y3)
P4 = (x4,y4)
P5 = (x5,y5)
P6 = (x6,y6)
be the six successive vertices of the hexagon. We will find the point
P = (x,y)
such that if we connect P with P2, P4, and P6 with straight line segments, the hexagon will be partitioned into three quadrilaterals of equal area.
% The matlab code:
x31 = x3-x1; x51 = x5-x1;
x42 = x4-x2; x64 = x6-x4; x26 = x2-x6;
y31 = y3-y1; y51 = y5-y1;
y42 = y4-y2; y64 = y6-y4; y26 = y2-y6;
A = [y42-y26,x26-x42;y64-y26,x26-x64];
B = [x31*y42-y31*x42;x51*y64-y51*x64];
P = [x1;y1] + A\B;
x = P(1); y = P(2);
You can check that the three quadrilaterals have the same area with the following:
% These are twice each of the three quadrilateral areas
[(x-x1)*(y6-y2)-(y-y1)*(x6-x2);
(x-x3)*(y2-y4)-(y-y3)*(x2-x4);
(x-x5)*(y4-y6)-(y-y5)*(x4-x6)]
Note of caution. If the hexagon is sufficiently irregular, this solution is forced outside of the hexagon, in which case one (or more) of the quadrilaterals is necessarily twisted into a "figure 8" type configuration - that is, its edges cross over each other. In this case part of the area counts as negative. This means there is no possible solution in the ordinary sense, but you can consider it a solution in an algebraic sense.
(Corrected)
2 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!