Trigonometric functions are defined with reference to the unit circle.

The unit circle is defined to be the set of all points that are a euclidean distance of 1 from the origin.

Another word for Euclidean distance is 2norm.

I need some functions that are defined with reference to a circle from some arbitrary higher norm (3norm; 4norm …).

Is there a way to convert the standard trigonometric functions into this? If not, how can I approximate these functions?

Sent from my iPhone using Tapatalk

Not really, although I remember being taught that way. They’re defined with reference to right triangles, and the ratios of the lengths of the sides. The sine of an angle is the length of the opposite side over the length of the hypotenuse. The cosine of that angle would be the adjacent side over the hypotenuse.

It’s fairly common to learn what certain key values would be if the hypotenuse is 1, but they’re not defined that way. For example the cosine of 60° is 0.5 (or 1/2). If you have a right triangle (meaning one corner is 90°) and one of the other angles is 60°, the side adjacent to that 60° angle will be half as long as the hypotenuse. If the hypotenuse is 6 inches, that adjacent side will be 3 inches. If the hypotenuse is 100 meters, that adjacent side will be 50 meters. If the hypotenuse is 1, the adjacent side is 0.5.

Ah yes, you are right my mistake. I blame it on a brain fart.

Let me elaborate on what I am trying to do: if I want to trace a circle, parameterised in terms of an angle, I can use cos and sin to translate an angle and a radius to x and y ( polar to Cartesian).

But I want to map an angle to a circle based on a higher norm. The resulting circle is sort of a cross between a square and regular circle.

So how do I do this for arbitrary norms?

Sent from my iPhone using Tapatalk

Actually I think I can answer my own question:

- translate an angle to a formula for a straight line
- find the intersection of the straight line and the circle define by x^n + y^n = r^n.

Sent from my iPhone using Tapatalk

If you’re just looking for a parametric way to draw the circle, you can let x = r * |cos theta|[sup]2/n[/sup], y = r * |sin theta|[sup]2/n[/sup]. Then x[sup]n[/sup] + y[sup]n[/sup] = r[sup]n[/sup] automatically, and as theta goes from 0 to π/2 you’ll trace out the portion of the curve in Quadrant I. Flip the signs of x, y, or both to get the other three quarters of the circle.

The problem with this plan is that theta isn’t the angle between the point (x,y) and the x-axis in general; and it’s not clear to me that you’re looking for a solution where this is the case.

You could write x = r / (1 + tan[sup]n[/sup]θ)[sup]1/n[/sup], y = r / (1 + cot[sup]n[/sup] θ)[sup]1/n[/sup], if that’s what you mean (the ordinary trigonometric functions cos(θ) and sin(θ) have been “replaced” by more complicated-looking expressions). The figures you mention are called superellipses.

Thanks, I am looking to map angle to a point.

Thanks, this is basically what I derived by converting the angle to a gradient (m), then substituting in y = mx into x[sup]n[/sup]+y[sup]n[/sup]=1 (unit circle), and then solving for x and noting that tan = y/x.

Seems like a good idea but then you need to bear in mind that each value of gradient is produced by 2 different angles, so you need to multiply by sign(cos(t)) for x, and sign(sin(t)) for y.

So I went with that but then discovered that it only works for even values of n.

However, now that I know it is called a superellipse, I can do some searching.

Ok, solved it using a formula on wikipedia. For anyone curious, I want to build a function that maps a number to a color, in RGB space. (for coloring the mandelbrot set). This function will define the color scheme of the resulting image. The idea is to model a path that lives inside the unit cube. I started with circles then decided that I want a path that explores the corners of the cube a bit more, so a superellipse is called for. I put together some R code that draws some quite pretty 3d images. Try playing with values of n, and setting one of the wavelengths to an integer higher than 1.

the resulting chart is orient-able in 3d space by holding the left mouse button and moving the mouse

I think you simply want the unit circle in the l^p norm where 1 =< p =< infinity. This is a locus that ranges from a diamond (when p = 1, meaning the norm of (x,y) is |x| + |y|) to a square (when p = infinity, meaning that norm of (x,y) is the larger of |x|, |y|). When p = 5/2, you get some kind of super-egg (I think Piet Hein called it that).