Test Line2 Class

Download line2.zip

See the definition of classes Line2 and Vec2.

main.cpp


/* main
 */
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
#include "line2.h"

void test1();
void test2();

int main()
{
	test1();
	cout << "main program done"<<endl;
	return 0;
}

void test2()
{
	Vec2 a, b;
	cout << "Enter two points: ";
	cin >> a >> b;
	Line2 AB(a,b);
	cout << "Line " << AB;
	cout << "  length " << AB.getSize() << ", angle " << AB.getAngle() << endl;
}
	

void test1()
{
	Vec2 a(14,20);
	Vec2 b(4,-3);
	Vec2 c(6,8);
	Vec2 d(-8,4);

	Line2 AB(a,b);
	Line2 CD(c,d);

	cout << "sizeof(Vec2)-2*sizeof(double) = " << sizeof(Vec2)-2*sizeof(double) << endl;
	cout << "sizeof(Line2)-2*sizeof(Vec2) = " << sizeof(Line2)-2*sizeof(Vec2) << endl;

	cout << "line AB: " << AB << endl;
	cout << "line CD: " << CD << endl;
	cout << "line AB + Vec2(1,-1): " << AB+Vec2(1,-1) << endl;

	cout << "getSize AB : " << AB.getSize() << endl;
	cout << "AB[0][0]: " << AB[0][0] << " AB[0][1]: " << AB[0][1] << endl;
	cout << "angle(AB,CD) : " << angle(AB,CD) << endl;

	Line2 XY;
	cout << "XY.from(0,1).to(3,2): " << XY.from(0,1).to(3,2) << endl;
	cout << "XY.to(a).from(b): " << XY.to(a).from(b) << endl;

	cout << "Vec2(30.0): " << Vec2(30.0) << endl;
	cout << "Line2(1,2,3,4): " << Line2(1,2,3,4) << endl;
	Line2 R1(Vec2(30.0));
	cout << "R1 = Line2(Vec2(30.0)): " << R1 << endl;
	cout << "R1+=a: " << (R1+=a) << endl;

	Line2 R2;
	R2.from(1,1).away(1.0,-90.0);
	cout << "R2 = from(1,1).away(1.0,-90.0) " << R2 << endl;
	
	cout << "test1 done" << endl;
}
	


Results

C:\classes\ece538\Lines>test1
sizeof(Vec2)-2*sizeof(double) = 0
sizeof(Line2)-2*sizeof(Vec2) = 0
line AB: [14 20]:[4 -3]
line CD: [6 8]:[-8 4]
line AB + Vec2(1,-1): [15 19]:[5 -4]
getSize AB : 25.0799
AB[0][0]: 14 AB[0][1]: 20
angle(AB,CD) : -50.556
XY.from(0,1).to(3,2): [0 1]:[3 2]
XY.to(a).from(b): [4 -3]:[14 20]
Vec2(30.0): [0.866025 0.5]
Line2(1,2,3,4): [1 2]:[3 4]
R1 = Line2(Vec2(30.0)): [0 0]:[0.866025 0.5]
R1+=a: [14 20]:[14.866 20.5]
R2 = from(1,1).away(1.0,-90.0) [1 1]:[1 0]
test1 done
main program done


Maintained by John Loomis, updated Sat Feb 03 11:15:48 2007