Equation of a Square?

This topic is 2275 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

This is going to be quite a strange question... Does a _square_ have an equation? You know, an equation for the points on a square? For a circle there's r^2 = dx^2 + dy^2, but what would a square equation look like?

Share on other sites
disjointed
a set of separate equations with some arbitrary semantics that indicate when you need to switch from one to the next

Share on other sites
It's discontinuous (it has corners) and isn't a function, so it's not as straight forward, but thinking about it, this seems like it might work:

x = |d|, y = |d|, for all x,y ≤ |d|

Share on other sites
you mean something like
r = max(abs(x), abs(y))

Share on other sites
If you want to draw the square I guess a useful way would be to describe it as a linear combination of two perpendicular unit vectors.

For example, with the two vectors

A = (0, -1, 0)
B = (1, 0, 0)

Any point in the square is given by

P = Ar + Bs

Where r, s <= l (and l = length of the sides of the square).

If you want to describe the edge you just fix either r or s at 0 or l and you have a line equation.

A and B doesn't have to be unit vectors though, but it makes it easier to set the size of the square if they are.

Share on other sites
Equation of a triangle

P in triangle (A, B, C) :

P = A + t * (B - A) + u * (C - A)
0 <= t <= 1,
0 <= u <= 1,
0 <= (t+u) <= 1,

let's say a parallelogram, which is like, two triangles... I am not sure waht would be the constraints on that.

0 <= (t+u) <= 2 maybe?

Share on other sites
another one :)

say you have square (x0, y0)-(x1, y1) (x0 < x1, y0 < y1)

x = min(max(x, x0), x1)
y = max(min(y, y0), y1)

Share on other sites
Actually, you just remove the the sum restriction u + t ≤ 1 completely to get the full quadrilateral (keep 0 ≤ u/t ≤ 1). But it describes the entire inner area. You would have more logic to get just the edges.

Share on other sites
As nmi said, the equation for a zero-centered axis-aligned square of edge 2r is:

max(|x|,|y|) = r

You may apply a transform first to rotate, move or scale the square.

Share on other sites
Quote:
 Original post by erissianIt's discontinuous (it has corners)

Not quite. A square is continuous (there are certainly no gaps), but it isn't smooth. If one were to describe it piecewise-implicitly or parametrically, then it's the first derivatives (and hence all that follow) that would be discontinuous. </unnecessary aside>

Share on other sites
Quote:
 Original post by ZipsterActually, you just remove the the sum restriction u + t ≤ 1 completely to get the full quadrilateral (keep 0 ≤ u/t ≤ 1). But it describes the entire inner area. You would have more logic to get just the edges.

true, which is the same :)

Share on other sites
Quote:
Quote:
 Original post by erissianIt's discontinuous (it has corners)

Not quite. A square is continuous (there are certainly no gaps), but it isn't smooth. If one were to describe it piecewise-implicitly or parametrically, then it's the first derivatives (and hence all that follow) that would be discontinuous. </unnecessary aside>

Ah, true. My schooling involved heavy use of mathematics and major abuse of it's terminology. :)

Share on other sites
You could actually get away with using the equation of a superellipse to describe a square, if you use an exponent that is sufficiently high enough such that the deviation from a true square is less than the resolution of the square.

Share on other sites
square waves are really only a bunch (an infinate bunch) of sine waves added together...

potentially, a square, is really a bunch of wobbly sine waves on a circular spread!

maybe, maybe.

Share on other sites
Here's another one, just for fun:

abs(x) + abs(y) <= 1

Although this one is at 45 degrees rotation to the axis, it's of max radius 1 :-)

Share on other sites
Quote:
 Original post by MerlzHere's another one, just for fun:abs(x) + abs(y) <= 1Although this one is at 45 degrees rotation to the axis, it's of max radius 1 :-)
That's a filled square though (or a filled diamond if you prefer)

A more generic unfilled version of that would be:
abs(x) + abs(y) = r

Of course you could probably rotate that by 45 degrees, which would probably look something like this:

abs(x*sin(45)+y*cos(45)) + abs(x*cos(45)-y*sin(45)) = r

But I'm probably just getting carried away, as nmi has already posted the simplest solution.

Share on other sites
Quote:
 Original post by iMalcA more generic unfilled version of that would be:abs(x) + abs(y) = rOf course you could probably rotate that by 45 degrees, which would probably look something like this:abs(x*sin(45)+y*cos(45)) + abs(x*cos(45)-y*sin(45)) = r
Try:

abs(x + y) + abs(x - y) = r

Share on other sites
Equation of a sphere is x^2+y^2=r^2. Equation of a very rounded square is x^4+y^4=r^4. Equation of a square with decreasing roundings is x^p+y^p=r^p, (increasing p). The "limit" of this equation with p->oo is an equation of a square. This "limit" is L_inf metric, max(|x|,|y|).

Share on other sites
I don't understand why all these people are answering so damn complicated... the equation for the (unit) square is abs(x)+abs(y)=1

Share on other sites
It also have parametric representations:
- Square:
x=infcos(t);
y=infsin(t);
(infPI=4)

-Diamond:
x=abscos(t);
y=abssin(t);
(absPI=2*sqrt(2))

where:sawtooth(x){ abs((x-4*floor(0.25*x))-2)-1 } infcos(x){ min(1,max(-1,sawtooth(0.5*x)*2)) } infsin(x){ infcos(x-2) } abscos(x){ x*=sqrt(2)*0.5; sawtooth(x) } abssin(x){ x*=sqrt(2)*0.5; sawtooth(x-1) }

Share on other sites
yeah, as mbaitoff says above, to the extent that there is one, wouldn't the "equation of a square" be the limit of

x^n + y^n = 1

as n approaches infinity?

Anyway for practical purposes you can use x^n + y^n = 1 as the equation of a square by choosing a very large value for n. These sorts of shapes are known as "super ellipses". For example check out the picture of the squircle in the wikipedia article. It will get more square-like as n gets bigger.

Share on other sites

It's discontinuous (it has corners)

It is continuous, it's just not smooth, and therefore not differentiable.

Share on other sites
Am I the first to have noticed that the thread is from 2007? Because normally someone would have mentioned this!

Share on other sites

Am I the first to have noticed that the thread is from 2007? Because normally someone would have mentioned this!

Yes. Yes you are. Thanks. Thumbs down to the necromancer. Especially since that's the only post he's made.