75392e54c7
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@757 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
34 lines
847 B
Plaintext
34 lines
847 B
Plaintext
|
|
/* Circle is a special form of ellipse */
|
|
/* Subclasses ('circle' here) must have the same number of arguments */
|
|
/* as their superclass ('ellipse') for the superclass predicates to */
|
|
/* be applicable. The arguments may be renamed for clarity. */
|
|
|
|
:- object(circle(Center, Radius),
|
|
extends(ellipse(Center, Radius, Radius))).
|
|
|
|
|
|
:- info([
|
|
author is 'Paulo Moura',
|
|
version is 1.0,
|
|
date is 2000/4/22,
|
|
comment is 'Parametric object for representing geometric circles.',
|
|
parnames is ['Center', 'Radius'],
|
|
source is 'Example adopted from the POEM system by Ben Staveley-Taylor.']).
|
|
|
|
|
|
:- public(circumference/1).
|
|
:- mode(circumference(-number), one).
|
|
|
|
|
|
circumference(Circumference) :-
|
|
pi(Pi),
|
|
parameter(2, Radius),
|
|
Circumference is 2*Pi*Radius.
|
|
|
|
|
|
pi(3.14196).
|
|
|
|
|
|
:- end_object.
|