I am trying to find a formula for the centre of spiral similarity (see here) of two lines, lineAB
and lineCD
. My problem comes in the very last step, but I think it might help if I outline the process that got me there.
Start with the following lines and points:
pointA = {a, \[Alpha]};
pointB = {b, \[Beta]};
pointC = {c, \[Gamma]};
pointD = {d, \[Delta]};
lineAB = Line[{pointA, pointB}];
lineAC = Line[{pointA, pointC}];
lineBD = Line[{pointB, pointD}];
lineCD = Line[{pointC, pointD}];
The first step is to find the intersection point pointP1
of lineAC
and lineBD
. So, I find the functions describing these lines, and solve:
fac[x_] := (\[Gamma] - \[Alpha])/(c - a) x - (a (\[Gamma] - \[Alpha]))/(c - a) + \[Alpha];
fbd[x_] := (\[Delta] - \[Beta])/(d - b) x - (b (\[Delta] - \[Beta]))/(d - b) + \[Beta];
pointP1 =
Flatten[{
x /. Solve[fac[x] == fbd[x], x],
fac[x] /. x -> x /. Solve[fac[x] == fbd[x], x]
}];
This works fine.
Next, I find the circumcircles for the triangles {pointP1 ,pointA, pointB}
and {pointP1 ,pointC, pointD}
:
circlePAB = Circumsphere[{pointP1, pointA, pointB}];
circlePCD = Circumsphere[{pointP1, pointC, pointD}];
This also works, as you can see from evaluating this:
Clear["Global`*"];
Manipulate[
fac[x_] := (\[Gamma] - \[Alpha])/(c - a) x - (
a (\[Gamma] - \[Alpha]))/(c - a) + \[Alpha];
fbd[x_] := (\[Delta] - \[Beta])/(d - b) x - (
b (\[Delta] - \[Beta]))/(d - b) + \[Beta];
pointA = {a, \[Alpha]};
pointB = {b, \[Beta]};
pointC = {c, \[Gamma]};
pointD = {d, \[Delta]};
pointP1 =
Flatten[{x /. Solve[fac[x] == fbd[x], x],
fac[x] /. x -> x /. Solve[fac[x] == fbd[x], x]}];
circlePAB = Circumsphere[{pointP1, pointA, pointB}];
circlePCD = Circumsphere[{pointP1, pointC, pointD}];
graphicPointA = {{White, Disk[pointA, 0.5]}, Text["A", pointA]};
graphicPointB = {{White, Disk[pointB, 0.5]}, Text["B", pointB]};
graphicPointC = {{White, Disk[pointC, 0.5]}, Text["C", pointC]};
graphicPointD = {{White, Disk[pointD, 0.5]}, Text["D", pointD]};
graphicPointP1 = {{White, Disk[pointP1, 0.5]},
Text["\!\(\*SubscriptBox[\(P\), \(1\)]\)", pointP1]};
lineAB = Line[{pointA, pointB}];
lineAC = Line[{pointA, pointC}];
lineBD = Line[{pointB, pointD}];
lineCD = Line[{pointC, pointD}];
Graphics[{{Lighter[Gray], lineAB}, {Lighter[Gray],
lineAC}, {Lighter[Gray], lineBD}, {Lighter[Gray],
lineCD}, {Darker[Blue], circlePAB}, {Darker[Red], circlePCD},
graphicPointA, graphicPointB, graphicPointC, graphicPointD,
graphicPointP1}, ImageSize -> Large]
,
{{a, -7}, -10, 10}, {{\[Alpha], 9}, -10, 10},
{{b, -9}, -10, 10}, {{\[Beta], -7}, -10, 10},
{{c, 9}, -10, 10}, {{\[Gamma], -8}, -10, 10},
{{d, 2}, -10, 10}, {{\[Delta], 8}, -10, 10}
]
A screenshot gives the idea:
The centre of spiral similarity is the second point of intersection (i.e., not pointP1
) of circlePAB
and circlePCD
. So:
RegionIntersection[circlePAB, circlePCD]
But this doesn't evaluate. I just get
BooleanRegion[#1 && #2 &, {Sphere[{-((-b^2 [Alpha] - b c [Alpha] + b d [Alpha]... (etc, etc, etc)
How do I take the final step to find the second point of intersection?