# Illustrate the difference of two squares via the command line

So, after 10 years of wanting to study the book that Ramanujan relied upon for a lot of his early strides in mathematics, it's 2012, and the book is finally online.

To celebrate, I want to go through each of the propositions using my command line, finding a way to interact with each one.

In `octave` syntax, first one is `a^2 - b^2 = (a-b) * (a+b)`

That's familiar from algebra, of course.

For now, I just want to be able to make a picture of this difference of squares.

I've looked at gnuplot, and it doesn't seem to be designed to do simple geometric shapes.

NB: I don't want to plot the function `f(x, y) = x^2 - y^2`. I want to draw two squares of a given size in different colors, one inside the other, to illustrate the difference of squares graphically.

What I'd like to be able to do is type something like

``````\$plotsquare --center origin --colors=black,gray black=8x8 gray=3x3 -q -o plot.png
``````

'black' being an 8x8 square, 9 being a 9x9 square; the gray square inside the black square illustrates the difference of squares.

Does anything like that exist?

• Do you mean something like this: `echo "set term png; splot x**2 - y**2 with pm3d" | gnuplot > plot.png` – Thor May 13 '12 at 14:21
• nope, i 'm not interested in plotting the function. i'm interested in drawing two squares in two colors, the lesser inside the perimeter of the greater one. so i amended the question to emphasize this. – ixtmixilix May 13 '12 at 16:51

## 1 Answer

Maybe you haven't found the right options to use in `gnuplot`. I was able to get the graph:

``````gnuplot> f(x,y) = (x-y)*(x+y)
gnuplot> set contour base
gnuplot> set cntrparam levels discrete 0.0
gnuplot> unset surface
gnuplot> set table 'curve.dat'
gnuplot> splot f(x,y)
gnuplot> unset table
gnuplot> set surface drawn
gnuplot> plot 'curve.dat' with lines
``````

Play around with the options to get the type of plot you wish.

• I'm not interested in the function at all; sorry. Please see edited question and comment above. – ixtmixilix May 24 '12 at 23:29