# JeoEditPoints

## Operating Manual

by Mark Grundland for Godfried Toussaint
Computational Geometry Lab

School of Computer Science at McGill University
Version 1.2.1
November 1998

What is it?

What does it need?

How does it work?

What can go wrong?

Who is responsible?

"The Great Bear is looking so geometrical

One would think that something or other could be proved."

- Christopher Fry

## What is it?

The JeoEditPoints applet, a part of the JeoEdit package, is a visual tool for creating a set of points in the plane which can have any configuration that you can imagine. As you may know, points are the atoms of geometry. They are the subject of countless theorems and algorithms in computational geometry, pattern recognition, and computer graphics. The purpose of JeoEditPoints is to provide anyone on the world wide web with the powerful and flexible editing tools needed to visually specify a random or predetermined set of points . The point set can then be used as an example or an counterexample for a geometric hypothesis or as an input for a geometric algorithm.

JeoEditPoints is basically a state-of-the-art, what-you-make-is-what-you-see-is-what-you-get, point-and-click-and-drag-and-drop, all-purpose point gadget. Enjoy!

The best way to learn the JeoEditPoints applet is to play with it. If you are interested in creating your own applet, which will communicate with JeoEditPoints in order to use its points as input for a geometric algorithm, take a look at the JeoEdit Developer's Guidebook. JeoEditPoints is a close cousin of the JeoEditPolygon applet, which has its own operating manual that reads very, very much like this one. Finally, if you're at the School of Computer Science at McGill University, you may be interested in my hints on how to get Java to work on campus.

By the way, JeoEditPoints is free for non-commercial, educational use. Use it at your own risk and our pleasure - we make no expressed or implied warranties with regard to this software, its performance, or the points it creates so we won't be liable for any consequential, incidental, or indirect damages arising out of its use or misuse. JeoEditPoints is not public domain. Without our written permission, you may not commercially use, distribute, modify, adapt, translate, or resell this software or any part of it. When you distribute on a non-commercial basis the JeoEditPoints software or any part of it, you must give due credit to its creators, Godfried Toussaint and Mark Grundland, and please include this manual and preserve its internet links.

## What does it need?

JeoEditPoints works on any platform that has a web browser which fully supports Java version 1.1 or newer. In fact, Java version 1.1.6 or newer is strongly recommended. For JeoEditPoints to communicate with other applets, the web browser must correctly implement the Java AppletContext.getApplets() mechanism.

JeoEditPoints has been successfully tested with Microsoft Internet Explorer 4.0 on Windows NT 4.0, Netscape Communicator 4.06 on Linux, HotJava 1.1.4 on Solaris UNIX, as well as Microsoft Internet Explorer 4.01 using Apple's MRJ 2.1 Java virtual machine on Mac OS (Power PC required).

## How does it work?

When the JeoEditPoints applet starts up, you will see this window:

The white space, taking up most of the window, is the drawing canvas on which you can create and modify an arrangement of points. Each point is marked with a little square. A selected point is marked in blue while a deselected point is marked in black. To facilitate viewing and editing, no two points should be too close together - their squares must never be on top of each other. When a point is moved over, any point that is directly adjacent or underneath its square is erased to make room for the new arrival. The drawing canvas can hold comfortably about a thousand points, accommodating slightly more points horizontally then vertically on account of its rectangular shape. You can start off a point set from a clear canvas or a uniform random sample of points, and then add or remove points in a either random or deliberate fashion, depending on your needs. You may select one or more points in order to clone, remove, or move only the selected points while keeping the remaining points fixed. Use the brush, a circle that follows your mouse pointer around, to help you to select points, as well as randomly place or delete points. Finally, you can verify the point set to see if any three points are collinear - the first such triple which is discovered will be marked in red. Once the point set is ready, you can send it to other applets as input for further processing. If you need more space to work in, just resize the JeoEditPoints window and the point set will be scaled accordingly. However, you will not be able to cram more points into the larger space - the points will simply appear to be more spread out. This ensures that, no matter how the point set is edited, it can always be displayed in a compact viewing space and every point will be fully visible.

Above the drawing canvas, there is the status panel showing the editing tool currently in use as well as any errors or warnings.

Next, there is the workspace panel consisting of a row of buttons numbered one to five, corresponding to five separate workspaces, each with its own point set. Use the workspaces to temporarily store multiple sets of points. The currently selected workspace has its button highlighted and the drawing canvas displays its point set. You can easily switch between workspaces as well as transfer a set of points from one workspace to another.

At the top of the window, there is the task bar. From left to right, the task bar buttons designate Undo, Redo and New commands, followed by Spray, Select, Add, and Remove tools and finally the Verify and Process tasks. The current tool has its button highlighted.

Below the task bar buttons is a slider control which you can use to regulate the size of the brush circle. Simply slide the little rectangular thumb along the slider's horizontal track line. Or, just as well, click anywhere on the slider's track line to move the slider's thumb. Dragging the thumb to the left shrinks the brush while dragging it to the right enlarges the brush. Another use of the slider is to specify the number of points, from as few as one to as many as a thousand, in the uniform random sample that the New command creates.

## How do you use it?

The buttons and tools all work in a natural, intuitive way - hopefully. Note that "left click" or "left drag" refers to the left mouse button, while "right click" or "right drag" refers to the right or central mouse button (for a mouse with a single button, press down the shift key to simulate the right mouse button). Also note that "toggle" refers to inverting the current selection, whereby a selected point becomes deselected while a deselected point becomes selected.

Undo Command

• To cancel the last editing action performed in the current workspace:
 Click on the Undo button.

Redo Command

• To reverse the effect of the previous undo command:
 Click on the Redo button.

New Command

• To clear the canvas of all the points:
 Left click on the New button.
• To create a new uniform random sample of points:
 Right click on the New button. The number of points in the new set is determined by the slider control. Move the slider's rectangular thumb to the left if fewer points are needed or move it to the right to obtain more points.

Spray Tool

Use the right mouse button for adding points and the left mouse button for removing points.

• To randomly place new points:
 Left drag the brush and, one by one, new points will be randomly placed inside the brush circle for as long as there is room for them.
• To randomly delete existing points:
 Right drag the brush and, one by one, random points inside the brush circle will be deleted for as long as there are some left. The order in which the points were created shouldn't affect the random order in which they are deleted.

Select Tool

Use the left mouse button to select points and the right mouse button to toggle points.

• To select a point:
 Left click on the point.
• To select multiple points:
 Starting on an empty spot on the canvas, left drag to enclose the desired points in the selection rectangle.
• To deselect all the points:
 Left click on an empty spot on the canvas. Left clicking on the status panel also does the trick.
• To move the selected points:
 Starting on a selected point, left drag to position all the selected points while keeping the remaining points fixed. Whenever you select a point, you may also drag to move the selection.
• To toggle a point:
 Right click on the point.
• To select some more points in addition to those already selected:
 Starting on an empty spot on the canvas that is near the points that you wish to select, right drag the brush to select the points inside the brush circle.
• To deselect some of the points that are selected:
 Starting on an empty spot on the canvas that is near the points that you wish to deselect, right drag the brush to deselect the points inside the brush circle.

Use the left mouse button to add points and the right mouse button to select points.

• To add a new point:
 Left click on an empty spot on the canvas to create a new point on that spot. You can then drag to position the new point.
• To clone the selected points:
 Starting on a selected point, left drag to copy all the selected points and then position the newly created points. Note that you must have multiple points selected first for this operation to work.
• To select a point:
 Click on the point.
• To move a single point:
 Starting on the selected point, drag to position that point.
• To select multiple points:
 Starting on an empty spot on the canvas, right drag the brush to select the points inside the brush circle.
• To move the selected points:
 Starting on a selected point, right drag to position the selected points while keeping the remaining points fixed.
• To deselect all the points:
 Right click on an empty area on the canvas that is well away from any points. Left clicking on the status panel also does the trick.

Remove Tool:

Use the left mouse button to remove points and the right mouse button to select points.

• To remove a point:
 If the point is selected, first make sure that no other points are selected or they will be deleted as well. Left click on the point.
• To remove all the selected points:
 Left click on any selected point.
• To remove multiple points:
 Starting on an unoccupied spot on the canvas, left drag to enclose the points you want to remove in the selection rectangle.
• To select a point:
 Right click on the point.
• To select multiple points:
 Starting on an empty spot on the canvas, right drag the brush to select the points inside the brush circle.
• To move the selected points:
 Starting on a selected point, right drag to position the selected points while keeping the remaining points fixed.
• To deselect all the points:
 Click on an empty spot on the canvas. Left clicking on the status panel also does the trick.

This task will warn you if any three points in the point set are collinear. This is only useful for rather small point sets - in practice it is usually difficult to draw a point set with more than forty points without some three points being collinear.

• To verify the point set:
 Left click the Verify button.
• To turn on or off the automatic verification of the point set whenever its configuration is modified:
 Right click the Verify button.

This task will send the point set for further processing by the other applets on the web page. If there are no such applets available, the task will simply output the coordinates of the point set to standard output (which is typically the web browser's Java log). These coordinates are real numbers between 0 and 1, with the top left corner of the canvas as the origin of the coordinate system. If automatic verification is turned on and some points are found to be collinear, the point set won't be processed until the problem is resolved.

• To process the point set:
 Left click the Process button.
• To turn on or off the automatic processing of the point set whenever its configuration is modified:
 Right click the Process button.

Workspaces

• To switch to another workspace:
 Left click the button of the desired workspace. The point set of the previous workspace will be preserved, while the point set of the new workspace will be displayed, ready for editing.
• To transfer the point set of the current workspace to another workspace:
 Right click the button of the destination workspace. You will then be able to edit the current point set in this new workspace, while a copy of it will be preserved in the previous workspace.

You can download JeoEditPoints to your computer and run it directly using a web browser or an appletviewer such as the one which comes with Sun's JDK (be sure to use JDK 1.1.6 or newer). Just fetch the archive JeoEditPointsArchive.zip (for Windows) or JeoEditPointsArchive.tar (for UNIX) from this web page. The archive is approximately 300K.

## What can go wrong?

It is possible that JeoEditPoints may not function properly at some unfortunate times, just like most other Java software on the internet. The problem is usually with the Java virtual machine used by the web browser - try a different web browser or Java virtual machine. Here are some known problems and their solutions:

• When you are loading the JeoEditPoints applet, please be patient with it and avoid interrupting the loading process by clicking on the browser's stop or reload buttons or by going to a different web page. Otherwise the browser's Java class loader may become corrupted and you will have to restart the browser (this problem is especially acute with Microsoft Internet Explorer under Windows).

• When the HotJava browser or appletviewer is run locally or remotely on Linux, it may display JeoEditPoints with wildly incorrect colors. Try to adjust the display environment of your local machine to 256 colors (8 bpp). To see how this can be done on the machines in the School of Computer Science at McGill University lab, take a look at my SOCS Java Hints.
• It may be difficult to get JeoEditPoints to run on a Macintosh, due to the current lack of reliable browsers with Java virtual machines which fully support Java 1.1. Try using Microsoft Internet Explorer 4.01 with Apple's MRJ 2.1 Java virtual machine.

## Who is responsible?

If you are having any difficulty with JeoEditPoints, feel free to contact me, Mark Grundland, by sending email to MGrund@PO-Box.McGill.Ca. Have you found a bug? Describe the bug's precise nature, including its habitat and habits, and I will take pleasure in exterminating the critter on the spot. Comments, suggestions, job offers, sudden flashes of cosmic insight as well as sunshine are also welcome. For administrative matters you may contact Godfried Toussaint at Godfried@CS.McGill.Ca.

Please be patient with me since it can take me a while to respond. For the more urgent predicaments, the students or faculty of the School of Computer Science at McGill University may contact me at 514-637-4273.

May all your theorems be true...

- Mark Grundland