------------------------------------------------------------------------------
MC logo
Point Implementation File
[^] Code Examples
------------------------------------------------------------------------------
<<Point Header File cpoint.c Point Driver File>>
/*
 * C implementation file for points.
 */
#include "cpoint.h"
#include <stdio.h>
#include <math.h>

/* Fill in a point. */
Point mkpt(double x, double y) {
        Point p;

        p.xval = x;
        p.yval = y;

        return p;
}

/* Distance to another point.  Pythagorean thm. */
double dist(Point a, Point b) {
        double xd = a.xval - b.xval;
        double yd = a.yval - b.yval;
        return sqrt(xd*xd + yd*yd);
}

/* Add or subtract two points. */
Point add(Point a, Point b)
{
        return mkpt(a.xval + b.xval, a.yval + b.yval);
}
Point sub(Point a, Point b)
{
        return mkpt(a.xval - b.xval, a.yval - b.yval);
}

/* Move the existing point. */
void move(Point *p, double a, double b)
{
        p->xval += a;
        p->yval += b;
}

/* Print the point to standard output.  The class ostream is a base class
   for output streams of various types. */
void print(Point p)
{
        printf("(%g,%g)", p.xval, p.yval);
}
<<Point Header File Point Driver File>>