[comp.graphics] Controlling 4207s from VAX; fast test for polygon contact

POPX@vax.oxford.ac.uk (Jocelyn Paine) (02/12/91)

Newsgroups: comp.graphics
Subject: Controlling 4207s from VAX; fast test for polygon contact
Summary:
Expires:
Sender:
Reply-To: popx@vax.ox.ac.uk (Jocelyn Paine)
Followup-To:
Distribution: comp.graphics
Organization: Experimental Psychology, Oxford University, UK.
Keywords:


I wonder whether anyone can help with advice on controlling 4107/4207
terminals from a VAX? First some preamble, not mainly to do with
graphics.

I'm developing a simulated animal (PopBeast), living in a simulated 2-D
universe, as an aid to teaching AI. The idea is that the people I teach
(mainly psychologists, and mainly not used to mathematical or
computational formalism) can watch this animal go about its business
(eating when it feels hungry; planning routes and exploring; building
nests;...) and at the same time watch how information is represented and
transformed in its mind. In most AI courses, students have to learn a
lot of irrelevant incantations (logging in; OS commands; editing;
language syntax; ... ) before they ever get anywhere near AI. PopBeast
will owe a lot to conventional symbolic AI methods, something to
information-processing psychology, and will demonstrate the course's
relevance from the start. Those people who read comp.ai or
comp.simulation may see why I posted an article on "Games for Programmed
Players".

To be doable in the CPU time I have, PopBeast's world has to be 2-D;
simulating 3-D would just take too long. And the contents must be
grossly simplified, so that most objects are points or small-order
polygons. This means that I need a colour display; both to help the
students envision PopWorld, and to help PopBeast with its vision.
("Flatland" fans may remember the Great Chromatic Wars...). One of my
classes numbers 20; unfortunately, we can't afford 20 colour
SparcStations, so I have little alternative but to try running something
on the main service VAX, driving PCs as terminals. We have PC emulators
for 4107/4207 terminals.

So, I need to find, or build, graphics software which allows me to build
something as close as possible to a multi-windowing system displaying on
4207 emulators and controlled from a VAX. To make best use of VAX CPU
time, the terminals must do as much of the graphics as possible. At the
moment, the best bet (and it's not a very good one) that I have is GKS.
Anyone who's used it will know that it is unsuitable in a number of
ways: for example, there's no way to selectively re-draw part of the
screen, and there's no way to represent object hierarchies. In general,
the coupling GKS affords between host and terminal is too loose; I need
something more like X-windows (but don't suggest that I change to
X-windows; we don't have suitable terminals, nor does my programming
language support the interface). Has anyone out there written any
alternatives to GKS, or can anyone suggest alternatives?

On a different subject, but obviously related to PopWorld: can anyone
advise on representations and algorithms for testing whether two
polygons touch or intersect? The PopWorld simulator needs some fast way
to do this, so that it can detect when objects are about to collide.

Thanks for any advice:

                                                           Jocelyn Paine
                                                 Experimental Psychology
                                                                  Oxford

                                                     POPX @ UK.AC.OX.VAX

dwight@geohub.gcn.uoknor.edu (Dwight D. Moore) (02/12/91)

In article <9102112210.AA18089@ucbvax.Berkeley.EDU>, POPX@vax.oxford.ac.uk
(Jocelyn Paine) writes:
|>Path: uokmax!apple!agate!ucbvax!vax.oxford.ac.uk!POPX
|>From: POPX@vax.oxford.ac.uk (Jocelyn Paine)
|>Newsgroups: comp.graphics
|>Subject: Controlling 4207s from VAX; fast test for polygon contact
|>Message-ID: <9102112210.AA18089@ucbvax.Berkeley.EDU>
|>Date: 11 Feb 91 22:08:00 GMT
|>Sender: daemon@ucbvax.BERKELEY.EDU
|>Lines: 68
|
|>I wonder whether anyone can help with advice on controlling 4107/4207
|>terminals from a VAX? First some preamble, not mainly to do with
|>graphics.
|>
|>So, I need to find, or build, graphics software which allows me to build
|>something as close as possible to a multi-windowing system displaying on
|>4207 emulators and controlled from a VAX. To make best use of VAX CPU
|>time, the terminals must do as much of the graphics as possible. At the
|>moment, the best bet (and it's not a very good one) that I have is GKS.
|>Anyone who's used it will know that it is unsuitable in a number of
|>ways: for example, there's no way to selectively re-draw part of the
|>screen, and there's no way to represent object hierarchies. In general,
|>the coupling GKS affords between host and terminal is too loose; I need
|>something more like X-windows (but don't suggest that I change to
|>X-windows; we don't have suitable terminals, nor does my programming
|>language support the interface). Has anyone out there written any
|>alternatives to GKS, or can anyone suggest alternatives?
|                                                          Jocelyn Paine
|>                                                 Experimental Psychology
|>   
As for GKS and updating parts of the screen, you can create segments which are
groups
of  output primitives that you can manipulate as a group. However, this doesn't
solve
your problem with respect to object hierarchies.  For that, I would suggest
something like
PHIGS.  If you understand GKS, it shouldn't be to much of a jump to learn
PHIGS.
(just in case, PHIGS stands for Programmers Hierarchial Interactive Graphics
System).
You said you have a VAX, you can get PHIGS from DEC or there are several other
companies
that produce this software.

|---------------------------------------------------------------------------
                                Dwight D. Moore
                         Geosciences Computing Network
                            University of Oklahoma

                  dwight@geohub.gcn.uoknor.edu (129.15.40.10)
----------------------------------------------------------------------------