Based on a demonstration by Eric Roberts.
By repeatedly drawing lines, we can make a curved looking shape. Consider the example below where we imagine dots evenly space along the bottom and the left of a canvas. If we connect the topmost dot on the left edge to the left most dot on the right edge, we would be a line like the picture of the far left. If we then connect the next 10 dots we get a picture in the middle and if we connect all dots we get the picture on the right.
Write a program that creates the "curve" in the above right image using straight lines.
public class StringArt extends GraphicsProgram { /** The size of the screen **/ public static final int APPLICATION_WIDTH = 400; public static final int APPLICATION_HEIGHT = 400; /** The number of pixels between end points of the line **/ public static final int LINE_SPACING = 20; /** The number of lines we will have to draw **/ public static final int NUM_LINES = APPLICATION_WIDTH / LINE_SPACING; public void run() { for(int i = 0; i < NUM_LINES; i++) { int offset = i * LINE_SPACING; int startX = offset; int startY = getHeight(); int endX = 0; int endY = offset; GLine line = new GLine(startX, startY, endX, endY); add(line); } } }