"The Great
Bear is looking so geometrical
One would think that something or other
could be proved."
- Christopher Fry
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.
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).
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.
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:
- 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. |
Add Tool:
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:
- 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. |
Verify Task
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. |
Process Task
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.
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.
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
JeoEdit Package: Copyright © 1998
Mark Grundland & Godfried Toussaint.
All rights reserved.