75392e54c7
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@757 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
40 lines
923 B
Plaintext
40 lines
923 B
Plaintext
|
|
/* Points are going to be the fundamental quantity. */
|
|
/* These will be defined in Cartesian co-ordinates. */
|
|
|
|
:- object(point(_X, _Y)).
|
|
|
|
|
|
:- info([
|
|
author is 'Paulo Moura',
|
|
version is 1.0,
|
|
date is 2000/4/22,
|
|
comment is 'Parametric object for representing geometric points.',
|
|
parnames is ['X', 'Y'],
|
|
source is 'Example adopted from the POEM system by Ben Staveley-Taylor.']).
|
|
|
|
|
|
:- public(identical/1).
|
|
:- mode(identical(+nonvar), one).
|
|
|
|
:- public(distance/2).
|
|
:- mode(distance(+nonvar, -number), one).
|
|
|
|
|
|
identical(point(X1, Y1)) :-
|
|
/* succeeds if the argument and owner points are the same. */
|
|
parameter(1, X),
|
|
parameter(2, Y),
|
|
X1 = X,
|
|
Y1 = Y.
|
|
|
|
|
|
distance(point(X1, Y1), Distance) :-
|
|
/* finds the distance between argument and owner points. */
|
|
parameter(1, X),
|
|
parameter(2, Y),
|
|
Distance is sqrt((X1-X)*(X1-X)+(Y1-Y)*(Y1-Y)).
|
|
|
|
|
|
:- end_object.
|