Using John Browne's Grassmann algebra application and with the three points
at Cartesian coordinates {ax, ay, az}, {bx, by, bz}, and {cx, cy, cz} I
calculated the center of the circle at:
{x -> -(4 (az (by - cy) + bz cy - by cz +
ay (-bz +
cz)) (-(ax^2 + ay^2 + az^2 - bx^2 - by^2 - bz^2) (-by cx +
ay (-bx + cx) + ax (by - cy) + bx cy) -
2 (az - bz) (az by cx - ay bz cx - az bx cy + ax bz cy +
ay bx cz - ax by cz)) - (2 (ax^2 + ay^2 + az^2 - bx^2 -
by^2 - bz^2) (bz - cz) -
2 (az - bz) (bx^2 + by^2 + bz^2 - cx^2 - cy^2 -
cz^2)) (-2 (ay - by) (ay (bx - cx) + by cx - bx cy +
ax (-by + cy)) -
2 (az - bz) (az (bx - cx) + bz cx - bx cz +
ax (-bz + cz))))/(-4 (az (bx - cx) + bz cx - bx cz +
ax (-bz + cz)) (-2 (ay - by) (ay (bx - cx) + by cx - bx cy +
ax (-by + cy)) -
2 (az - bz) (az (bx - cx) + bz cx - bx cz +
ax (-bz + cz))) +
4 (az (by - cy) + bz cy - by cz +
ay (-bz + cz)) (2 (ax - bx) (-by cx + ay (-bx + cx) +
ax (by - cy) + bx cy) +
2 (az - bz) (az (by - cy) + bz cy - by cz + ay (-bz + cz)))),
y -> (-2 (ax^2 + ay^2 + az^2 - bx^2 - by^2 - bz^2) (bz - cz) +
2 (az - bz) (bx^2 + by^2 + bz^2 - cx^2 - cy^2 -
cz^2) + (4 (az (bx - cx) + bz cx - bx cz +
ax (-bz + cz)) (4 (az (by - cy) + bz cy - by cz +
ay (-bz +
cz)) (-(ax^2 + ay^2 + az^2 - bx^2 - by^2 -
bz^2) (-by cx + ay (-bx + cx) + ax (by - cy) +
bx cy) -
2 (az - bz) (az by cx - ay bz cx - az bx cy + ax bz cy +
ay bx cz - ax by cz)) - (2 (ax^2 + ay^2 + az^2 -
bx^2 - by^2 - bz^2) (bz - cz) -
2 (az - bz) (bx^2 + by^2 + bz^2 - cx^2 - cy^2 -
cz^2)) (-2 (ay - by) (ay (bx - cx) + by cx - bx cy +
ax (-by + cy)) -
2 (az - bz) (az (bx - cx) + bz cx - bx cz +
ax (-bz + cz)))))/(-4 (az (bx - cx) + bz cx - bx cz +
ax (-bz + cz)) (-2 (ay - by) (ay (bx - cx) + by cx -
bx cy + ax (-by + cy)) -
2 (az - bz) (az (bx - cx) + bz cx - bx cz +
ax (-bz + cz))) +
4 (az (by - cy) + bz cy - by cz +
ay (-bz + cz)) (2 (ax - bx) (-by cx + ay (-bx + cx) +
ax (by - cy) + bx cy) +
2 (az - bz) (az (by - cy) + bz cy - by cz +
ay (-bz + cz)))))/(4 (az (by - cy) + bz cy - by cz +
ay (-bz + cz))),
z -> (-az^2 by + by cx^2 + az^2 cy - bx^2 cy - by^2 cy - bz^2 cy +
by cy^2 + ax^2 (-by + cy) + ay^2 (-by + cy) + by cz^2 +
ay (bx^2 + by^2 + bz^2 - cx^2 - cy^2 - cz^2))/(2 (-bz cy +
az (-by + cy) + ay (bz - cz) + by cz)) + ((-by cx +
ay (-bx + cx) + ax (by - cy) +
bx cy) (4 (az (by - cy) + bz cy - by cz +
ay (-bz +
cz)) (-(ax^2 + ay^2 + az^2 - bx^2 - by^2 -
bz^2) (-by cx + ay (-bx + cx) + ax (by - cy) +
bx cy) -
2 (az - bz) (az by cx - ay bz cx - az bx cy + ax bz cy +
ay bx cz - ax by cz)) - (2 (ax^2 + ay^2 + az^2 - bx^2 -
by^2 - bz^2) (bz - cz) -
2 (az - bz) (bx^2 + by^2 + bz^2 - cx^2 - cy^2 -
cz^2)) (-2 (ay - by) (ay (bx - cx) + by cx - bx cy +
ax (-by + cy)) -
2 (az - bz) (az (bx - cx) + bz cx - bx cz +
ax (-bz + cz)))))/((az (by - cy) + bz cy - by cz +
ay (-bz + cz)) (-4 (az (bx - cx) + bz cx - bx cz +
ax (-bz + cz)) (-2 (ay - by) (ay (bx - cx) + by cx -
bx cy + ax (-by + cy)) -
2 (az - bz) (az (bx - cx) + bz cx - bx cz +
ax (-bz + cz))) +
4 (az (by - cy) + bz cy - by cz +
ay (-bz + cz)) (2 (ax - bx) (-by cx + ay (-bx + cx) +
ax (by - cy) + bx cy) +
2 (az - bz) (az (by - cy) + bz cy - by cz +
ay (-bz + cz)))))}
I have a notebook on it but it uses the GrassmannCalculus and Presentations
Applications. Presentations has Circle3D and Disk3D primitives. The notebook
also calculates and displays random cases.
David Park
***@comcast.net
http://home.comcast.net/~djmpark/index.html
From: Ste[hen Gray [mailto:***@roadrunner.com]
I'm looking for a neat formula to find the center of a circle in 3D through
3 points. I also need a good way to display it, preferably thickened so I
can show several and see whether they are linked, etc. To my surprise I did
not find anything on the Wolfram sites about these problems. (I have
Mathematica 7, if that matters.)