Geometric algebra equations for spheres, cylinders, etc.

Higher-dimensional geometry (previously "Polyshapes").

Geometric algebra equations for spheres, cylinders, etc.

Postby mr_e_man » Tue Aug 20, 2019 12:27 am

I'll use lowercase letters for scalars (a), lowercase bold for vectors (a), and uppercase for general multivectors (A).

We want to describe some "surface" or "submanifold" of Rn, which is a set of points/vectors {x = x1e1 + x2e2 + ... + xnen}.

An implicit description of the manifold is a set of equations

f1(x) = 0 , f2(x) = 0 , ... , fk(x) = 0,

where each fi is a function from Rn to R. These can be combined into a single vector equation f(x) = 0 (or f(x) = constant), where f is a function from Rn to Rk. The manifold is (n-k)-dimensional (in general).

A parametric description of the manifold is an equation x = f(t), where f is a function from Rk to Rn. We call (t1, t2, ... , tk) the "parameters" or "coordinates". The manifold is k-dimensional (in general).

I'll allow the function f to have multivector inputs and outputs. This isn't really a generalization, because multivectors are equivalent to vectors in an abstract sense; they just have different rules for multiplication, and different interpretations.

Let's focus on implicit equations first.

2 dimensions

Circle : x2 = a2

Line : x^a = B

By taking the dual (multiplying by e1e2), this equation is equivalent to

x.c = d

The line's direction (tangent vector) is a, and its normal vector is c. If ||c|| = 1, then d is the line's distance from the origin.

Pair of parallel lines : ||x^a||2 = d2

or equivalently (x.c)2 = d2

Point : x^a = b

or equivalently x.C = d

where C is a bivector. The wedge product with a scalar (a) is the same as scalar multiplication, which is invertible: x = b/a = constant.

Entire plane : x^A = 0

where A is a bivector.

3 dimensions

Sphere : x2 = a2

Plane : x^A = B

or equivalently x.c = d

The plane's direction (tangent bivector) is A, and its normal vector is c.

Pair of parallel planes : ||x^A||2 = d2

or equivalently (x.c)2 = d2

Line : x^a = B

or equivalently x.C = d

The line's direction is a, and its normal bivector is C.

Cylinder: ||x^a||2 = d2

or equivalently ||x.C||2 = d2

Point : x^a = b

or equivalently x.C = D

where C is a trivector.

Entire space : x^A = 0

where A is a trivector.

4 dimensions

Point : x^a = b

or equivalently x.C = D

where C is a quadvector.

Glome : ||x^a||2 = d2

This is getting tedious. Here's the general pattern.

A k-dimensional linear subspace has a direction (tangent k-blade) A, and a normal (n-k)-blade C which is the dual of A. The equation is x^A = constant, or x.C = constant.

A "boundary of a normal tube", or I guess a "spheration", of the subspace x^A = 0, is the set of all points at a certain distance from it. This is isomorphic to the Cartesian product of Rk with the sphere Sn-k-1. The equation is ||x^A||2 = constant, or ||x.C||2 = constant.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 538
Joined: Tue Sep 18, 2018 4:10 am

Re: Geometric algebra equations for spheres, cylinders, etc.

Postby mr_e_man » Tue Aug 20, 2019 2:09 am

Let's apply this to the (double) hyperbolic plane in R2,1. The equation x2 = -1 describes both sheets. A single sheet has the further restriction that x.y < 0 for any two points on it.

x^a = 0, a2 < 0 describes an antipodal pair of points.

x.a = 0, a2 > 0 describes a geodesic, the intersection of the hyperboloid with the plane through the origin orthogonal to a.

x^B = 0, B2 > 0, with a bivector B, also describes a geodesic, the intersection of the hyperboloid with the plane through the origin parallel to B.

x^a = constant, a2 < 0 describes a pair of points on opposite sheets, not necessarily antipodal.

x^a = constant, a2 = 0 describes a single point, or nothing, depending on the constant.

x^a = constant, a2 > 0 describes a pair of points on the same sheet, or a single point, or nothing.

x^B = constant, B2 > 0 describes a hypercycle (pair), the intersection of the hyperboloid with a plane parallel to B.

x^B = constant, B2 = 0 describes a horocycle, or nothing.

x^B = constant, B2 < 0 describes a circle (which may look like an ellipse to our Euclidean eyes), or a single point, or nothing.

(x^a)2 = constant, a2 < 0 describes an antipodal pair of circles.

(x^a)2 = constant, a2 = 0 describes an antipodal pair of horocycles.

(x^a)2 = constant, a2 > 0 describes four hypercycles.

And here are a few examples in hyperbolic space in R3,1.

x^B = 0, B2 > 0, with a simple bivector B, still describes a geodesic. The bivector can be found as the wedge product (or geometric product, as they're orthogonal) of any point on the geodesic and the tangent vector at that point (the "initial velocity"). Alternatively, the bivector can be found as the wedge product of any two points on the geodesic. A cylinder centred on the geodesic is described by (x^B)2 = constant.

x^a = 0, a2 < 0 describes a single point. A sphere centred on this point is described by (x^a)2 = constant.

x^T = 0, T2 > 0, with a trivector T, describes a geodesic plane. The trivector can be found as the wedge product of any point on the plane and two independent tangent vectors to the plane, or as the wedge product of any three non-collinear points on the plane. A pair of equidistant surfaces is described by (x^T)2 = constant.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 538
Joined: Tue Sep 18, 2018 4:10 am

Re: Geometric algebra equations for spheres, cylinders, etc.

Postby mr_e_man » Thu Dec 12, 2019 8:03 am

Now to parametric equations.

Point : x = b

Line : x = a t + b

Plane : x = a1t1 + a2t2 + b

k-dimensional subspace : x = a1t1 + a2t2 + ... + aktk + b

where all ai are linearly independent; the direction of the subspace is A = a1^a2^...^ak.

Circle : x = a (e1cos t + e2sin t)

= a e1(cos t + e1e2sin t)

= a e1exp(e1e2t)

= a exp(Bt)

where B is a bivector representing the plane of the circle, and a is a point on the circle, with a^B = 0 (or equivalently aB = -Ba). Also, I've used Euler's formula, which applies because (e1e2)2 = -1. For later generalization, we might want to write this as

x = exp(-Bt/2) a exp(Bt/2)

= R~ a R

where R is a variable (function of t) rotor in the circle's symmetry group.

Cylinder : x = a exp(Bt1) + c t2

where a and B have the same meaning as above for the cross-sectional circle, and c represents the cylinder's axis.

Sphere : x = a ((e1cos t1 + e2sin t1)sin t2 + e3cos t2)

= a e3(cos t2 + (e3e1cos t1 + e3e2sin t1)sin t2)

= a e3exp(t2(e3e1cos t1 + e3e2sin t1))

Now notice this expression which has the form of polar coordinates for the e1e2 plane; we can change variables, to write it in the form of rectangular coordinates:

t2(e1cos t1 + e2sin t1) = u1e1 + u2e2

x = a e3exp(u1e3e1 + u2e3e2)

= a exp(U)

= exp(-U/2) a exp(U/2)

= R~ a R

where a is a point on the sphere (the north pole), U is a variable bivector whose plane contains a (so aU = -Ua), and R is a rotor in the sphere's symmetry group. This group is actually 3-dimensional, though the sphere is 2-dimensional; this corresponds to the fact that a is not moved by rotating in the e1e2 plane. If we allow R to vary through the full 3-dimensional group, then the parametrization is degenerate. As we've written it, with R = exp((u1e3e1 + u2e3e2)/2), it's non-degenerate, but it does not form a group; the product of two different such R's is not another such R.

Instead of rotating a point to cover the sphere, we could rotate a circle. Let's use a 1-variable rotor R = exp(t1e1e2/2), and a 1-variable point y on the circle in the e1e3 plane:

x = a ((e1cos t1 + e2sin t1)sin t2 + e3cos t2)

= a (R~e1R sin t2 + R~e3R cos t2)

= R~ a (e1sin t2 + e3cos t2) R

= R~ y R

Indeed, with this concept we can generate toratopes.

Classical torus : x = a (e1cos t1 + e2sin t1) + b ((e1cos t1 + e2sin t1)cos t2 + e3sin t2)

= a R~e1R + b (R~e1R cos t2 + R~e3R sin t2)

= R~ (a e1 + b (e1cos t2 + e3sin t2)) R

= R~ (a + S~ b S) R

where a = a e1 is the centre of the initial circle, b = b e1 is a vector from its centre to a point on it, S = exp(t2e1e3/2) is a 1-variable rotor that generates the initial circle, and R = exp(t1e1e2/2) is a 1-variable rotor that sweeps the circle around to generate the torus.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 538
Joined: Tue Sep 18, 2018 4:10 am

Re: Geometric algebra equations for spheres, cylinders, etc.

Postby ICN5D » Fri May 07, 2021 11:27 pm

This is interesting. Completely over my head right now. I have quick-skimmed over some of that geometric algebra stuff a while back.

One question, though: can you derive equations for the multi-handled torus? Like the 3-prong cage-like surface in this thread?

You can start with a circle, and use a more sophisticated version of this '1-variable rotor' , which may actually be a 2-variable rotor, since the revolving direction changes constantly in 3-space. There is a parametric space curve that outlines this rotational path, if that's useful.

And beyond that, maybe even the multi-tigers (multi-handle version of the 3-torus). And even more beyond that, a process that converts these GA equations into their implicit forms (which is where I'm going with this). That could be incredibly useful, and it's a direction I've thought about more than once.
It is by will alone, I set my donuts in motion
ICN5D
Pentonian
 
Posts: 1135
Joined: Mon Jul 28, 2008 4:25 am
Location: the Land of Flowers

Re: Geometric algebra equations for spheres, cylinders, etc.

Postby mr_e_man » Fri May 14, 2021 1:35 am

Well, an ordinary torus has a circular cross-section everywhere. A 3-pronged torus does not; it can't be made by sweeping a circle around in space.

What is that parametric space curve you mention?

Implicitization is difficult in general. I recommend that you get used to parametric equations, and try to work with them directly, rather than translating to your "native language". :) But an n-pronged torus seems easier to define implicitly. Both types of equation are useful, in different ways.

Your derivation of equations for an n-pronged torus is somewhat complicated. I found a simpler way; the resulting shapes are not exactly the same as yours, but they have the same essential properties. I took the product of functions for an n-gonal array of spheres, and subtracted a z2 term.

A point x = xe1+ye2, on a circle in the plane with centre a and radius b, has

0 = (x - a)2 - b2
= x2 + a2 - b2 - 2ax.

Thus, an n-gonal array of circles, with centres at ak = a(e1cos(2πk/n)+e2sin(2πk/n)), has the equation

0 = prodk=0n-1 (x2 + ak2 - b2 - 2akx)
= prodk=0n-1 (x2 + y2 + a2 - b2 - 2a(x cos(2πk/n) + y sin(2πk/n))).

I see no reason to expand this now, though it is nice that the result has integer coefficients (no sines or cosines).

Moving up to 3D, a point x = xe1+ye2+ze3, on a sphere with centre a and radius b, has the same equation as a circle in 2D:

0 = (x - a)2 - b2 = x2 + a2 - b2 - 2ax,

so the array of spheres has

0 = prodk=0n-1 (x2 + ak2 - b2 - 2akx)
= prodk=0n-1 (x2 + y2 + z2 + a2 - b2 - 2a(x cos(2πk/n) + y sin(2πk/n))),

and the n-pronged torus has

0 = - c z2 + prodk=0n-1 (x2 + y2 + z2 + a2 - b2 - 2a(x cos(2πk/n) + y sin(2πk/n))).

Now let's look at its intersection with the z-axis, or e3 axis, which is described by

0 = xe3
= xe1e3 + ye2e3 + ze3e3
= xe13 + ye23 + 0,

that is, x=y=0. (Of course we knew that the z-axis is described by x=y=0. I'm trying to show you how the wedge product can be used, so you can perhaps make sense of some of my other equations. But that's beside the point of this post.) Here the torus equation simplifies to

0 = (z2 + a2 - b2)n - c z2.

Writing z2=t and a2-b2=d (let's assume a>b), to put this in the form (t+d)n - ct, makes it easier to see that there are at most two solutions t>0, and that there are exactly two solutions if c is large enough. Hence, there are four values of z=±√t.

Considering that the torus's intersection with the x-axis has x=a±b as two solutions (taking both signs), we might want the intersection with the z-axis also to have z=a±b as a solution (choosing one sign). This determines the subtracted term's coefficient:

0 = ((a ± b)2 + a2 - b2)n - c (a ± b)2
= (2a2 ± 2ab)n - c (a ± b)2
= (2a(a ± b))n - c (a ± b)2
= (a ± b)2 ((2a)n(a ± b)n-2 - c);

c = (2a)n(a ± b)n-2.

If we don't require z=a±b exactly, this still gives us an idea of how large c ought to be. In fact we can find the minimum value of c, when the torus's two bulbs at the poles first appear, by requiring the above function (t+d)n-ct to have a double root; that is, by setting both that function and its derivative n(t+d)n-1-c=0. We get from these two equations (after some tricky exponent algebra)

c = dn-1 nn/(n-1)(n-1),
t = d/(n-1);

that is,

c = (a2 - b2)n-1 nn/(n-1)(n-1),
z2 = (a2 - b2)/(n-1).

We could also add some z4 or higher terms to the main equation for more fine-tuning of the shape.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 538
Joined: Tue Sep 18, 2018 4:10 am

Re: Geometric algebra equations for spheres, cylinders, etc.

Postby ICN5D » Sat May 15, 2021 2:15 am

mr_e_man wrote:What is that parametric space curve you mention?


Okay, so it's not a perfect fit and only works with odd numbers, but this curve traces out a 3-prong spherical structure. If it contains a circle at every point (where the plane of the circle is perpendicular to the space curve at every point), technically it would cover the surface of a 3-prong multi-torus. Like some kind of 'rotation path' that a circle could take, to generate a more sophisticated donut shape. Still could use some refining though:

x(t) = cos(3t)

y(t) = sin(3t)*cos(t)

z(t) = sin(3t)*sin(t)

calcplot3d script


I was thinking of a way to extend and modify the rotation of a circle, somehow implicitize it, to generate these multi-torus shapes. Hopefully extend it to multi-tigers.



mr_e_man wrote:that is,

0 = (z^2 + a^2 - b^2)^n - c*z^2



The equation you use here looks a lot like something I call the "minimum polynomial" , which are:

(x^2+y^2+z^2)^3 -20(x^3-3xy^2) +10(x^2+y^2+4z^2+2)

(x^2+y^2+z^2)^4 -160(x^4+y^4-6x^2y^2) -2^8(x^2+y^2+8z^2-16)

(x^2+y^2+z^2)^5 -2*10^3(x^5-10x^3y^2+5xy^4) -2*10^4(x^2+y^2+10z^2-20)

(x^2+y^2+z^2)^6 -2^13(x^6-15x^4y^2+15x^2y^4-y^6) -3^11(x^2+y^2+20z^2-64)

These are the simplest equations that still plotted a reasonable surface. But yeah, you could still probably remove more terms and get an even more crude version. And yes, my derivation process is a little complicated, but the resulting shape and equation has an interesting property :) . It's the exact solution on the xy-plane. The perfect polygon arrays of perfect circles. It's the roots of unity concept generalized over the 2d reals. The centers of the circles are the scaled versions of the real and imaginary parts of x^n -1 = 0 , solving for x .

As it turns out, there are tons of equations that can graph a cage-like surface. I am only interested in a specific type: ones that contain an exact solution of circles, spheres, toruses, etc, where these arrays are joined into a cage-like structure in n+1 dimensions. The real tricky part is finding an implicit equation that does this for multi-tigers and multi-ditoruses. I have the 3D solution equations, where a 4th variable has been cancelled. But, figuring out the 4th variable is the tricky part.
It is by will alone, I set my donuts in motion
ICN5D
Pentonian
 
Posts: 1135
Joined: Mon Jul 28, 2008 4:25 am
Location: the Land of Flowers

Re: Geometric algebra equations for spheres, cylinders, etc.

Postby mr_e_man » Thu May 20, 2021 5:37 am

mr_e_man wrote:[...] requiring the above function (t+d)n-ct to have a double root; that is, by setting both that function and its derivative n(t+d)n-1-c=0. We get from these two equations (after some tricky exponent algebra)

c = dn-1 nn/(n-1)(n-1),
t = d/(n-1);

Oh, there was an easier way! I did it the hard way. :lol: :XP: :oops: I eliminated t first, then solved for c, then went back to find t. I should have eliminated c first, then solved for t, then gone back to find c.

mr_e_man wrote:We could also add some z4 or higher terms to the main equation for more fine-tuning of the shape.

Or even (x2+y2)z2, or generally (x2+y2)jz2k where j≥0 and k≥1. We must maintain the array of circles at z=0, so we can't add a (x2+y2)jz0 term. We should also keep j+k<n; otherwise these added terms will overwhelm the main product terms, and the resulting surface may blow up to infinity like a hyperboloid.

ICN5D wrote:
mr_e_man wrote:What is that parametric space curve you mention?


Okay, so it's not a perfect fit and only works with odd numbers, but this curve traces out a 3-prong spherical structure. If it contains a circle at every point (where the plane of the circle is perpendicular to the space curve at every point), technically it would cover the surface of a 3-prong multi-torus. Like some kind of 'rotation path' that a circle could take, to generate a more sophisticated donut shape. Still could use some refining though:

x(t) = cos(3t)

y(t) = sin(3t)*cos(t)

z(t) = sin(3t)*sin(t)

Okay, I've calculated the TNB frame (tangent-normal-binormal) for this curve x(t)=e1cos(nt)+sin(nt)(e2cos(t)+e3sin(t)). The corresponding surface would then be parametrized by

x(t,u) = a x(t) + b (N(t) cos(u) + B(t) sin(u)),

where a is a major radius and b is a minor radius. But the formulas for N and B are big and ugly, even when compressed with vector notation; they would be bigger and uglier when expanded into x,y,z components, and then x(t,u) when expanded would be bigger and uglier still. :sweatdrop:

...Again there is an easier way. Since x(t) is on the unit sphere, that position vector itself is a normal vector to the curve (that is, x(t)•T(t)=0), and may be used in place of N(t). So we can complete this into an orthonormal frame (T,x,C), with C=T×x. The formulas are smaller for this frame. The new parametrization would be

x(t,v) = a x(t) + b (x(t) cos(v) + C(t) sin(v)).

Anyway, whichever parametrization we use, this surface will intersect itself. It won't be the 3-pronged torus we want.

ICN5D wrote:
mr_e_man wrote:that is,

0 = (z^2 + a^2 - b^2)^n - c*z^2



The equation you use here looks a lot like something I call the "minimum polynomial" , which are:

(x^2+y^2+z^2)^3 -20(x^3-3xy^2) +10(x^2+y^2+4z^2+2)

(x^2+y^2+z^2)^4 -160(x^4+y^4-6x^2y^2) -2^8(x^2+y^2+8z^2-16)

(x^2+y^2+z^2)^5 -2*10^3(x^5-10x^3y^2+5xy^4) -2*10^4(x^2+y^2+10z^2-20)

(x^2+y^2+z^2)^6 -2^13(x^6-15x^4y^2+15x^2y^4-y^6) -3^11(x^2+y^2+20z^2-64)

These are the simplest equations that still plotted a reasonable surface. But yeah, you could still probably remove more terms and get an even more crude version. And yes, my derivation process is a little complicated, but the resulting shape and equation has an interesting property :) . It's the exact solution on the xy-plane. The perfect polygon arrays of perfect circles. It's the roots of unity concept generalized over the 2d reals. The centers of the circles are the scaled versions of the real and imaginary parts of x^n -1 = 0 , solving for x .

My equation also has perfect polygon arrays of perfect circles on the x,y-plane. In case it wasn't clear, this is my main equation:

mr_e_man wrote:and the n-pronged torus has

0 = - c z2 + prodk=0n-1 (x2 + y2 + z2 + a2 - b2 - 2a(x cos(2πk/n) + y sin(2πk/n))).

Specializing to n=3, and adding those other terms I just mentioned, we have

0 = (x2+y2+z2+a2-b2 - 2ax) (x2+y2+z2+a2-b2 + ax - ay√3) (x2+y2+z2+a2-b2 + ax + ay√3) - cz2 - d(x2+y2)z2 - ez4.

You may freely choose a,b,c,d,e.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 538
Joined: Tue Sep 18, 2018 4:10 am

Re: Geometric algebra equations for spheres, cylinders, etc.

Postby ICN5D » Sat May 22, 2021 3:11 am

mr_e_man wrote:Specializing to n=3, and adding those other terms I just mentioned, we have

0 = (x2+y2+z2+a2-b2 - 2ax) (x2+y2+z2+a2-b2 + ax - ay√3) (x2+y2+z2+a2-b2 + ax + ay√3) - cz2 - d(x2+y2)z2 - ez4.

You may freely choose a,b,c,d,e.



Well, I have actually seen these kinds of expressions come up from triangular arrays of circles, but w/o the z terms. So, I'm sure this makes a 3-prong-like surface! I'll have to check out this equation in calcplot and fiddle with the parameters sometime. I have formed similar equations involving 3 toruses for the mantis, but a few of the slices were not right.
It is by will alone, I set my donuts in motion
ICN5D
Pentonian
 
Posts: 1135
Joined: Mon Jul 28, 2008 4:25 am
Location: the Land of Flowers

Re: Geometric algebra equations for spheres, cylinders, etc.

Postby mr_e_man » Thu Jun 03, 2021 4:49 pm

Implicit equation for a classical torus, with major radius a, minor radius b, and unit bivector D for the orientation of the core circle's plane:

(||D•x|| - a)2 + ||D∧x||2 = b2

||D•x||2 + ||D∧x||2 + a2 - b2 = 2a ||D•x||

||x||2 + a2 - b2 = 2a ||D•x||

(||x||2 + a2 - b2)2 = 4a2 ||D•x||2.

Note that D•x is the projection of x into the circle's plane (it's also rotated 90° in that plane, but that doesn't change the magnitude). And D∧x is proportional to the rejection (projection away) of x from that plane.

Now let's move the torus away from the origin, so that its centre is c :

(||x - c||2 + a2 - b2)2 = 4a2 ||D•(x - c)||2.

If this vector c is parallel to the axis of the torus, then it's perpendicular to the core circle's plane, thus D•c = 0, and the equation simplifies slightly:

(||x - c||2 + a2 - b2)2 = 4a2 ||D•x||2

(||x||2 + ||c||2 + a2 - b2 - 2cx)2 - 4a2||D•x||2 = 0.
ΓΔΘΛΞΠΣΦΨΩ αβγδεζηθϑικλμνξοπρϱσςτυϕφχψωϖ °±∓½⅓⅔¼¾×÷†‡• ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
ℕℤℚℝℂ∂¬∀∃∅∆∇∈∉∋∌∏∑ ∗∘∙√∛∜∝∞∧∨∩∪∫≅≈≟≠≡≤≥⊂⊃⊆⊇ ⊕⊖⊗⊘⊙⌈⌉⌊⌋⌜⌝⌞⌟〈〉⟨⟩
mr_e_man
Tetronian
 
Posts: 538
Joined: Tue Sep 18, 2018 4:10 am


Return to Other Geometry

Who is online

Users browsing this forum: No registered users and 1 guest

cron