point2

index: point2.h   point2.cpp   results

This class captures the graphics/display aspects of a 2D geometrical point. As such it is highly system dependent.

point2.h


/*\file point2.h
*/
/*!    point2 is a two dimensional point with graphics characteristics
*/

#pragma once

#include "vec2.h"


//! defines two-dimensional graphics point
class point2: public Vec2 {
public:	
	point2(): Vec2(0.0,0.0) { } //!< default no-argument constructor
	~point2() {} //!< destructor
	//! constructs point2 from (x,y) coordinates
	point2(double x, double y): Vec2(x,y) { }
	void convert(CPoint &dst) { convert(*this,dst); }
	static void convert(Vec2 &src, CPoint &dst);
	static int resolution;
	void draw(CDC &dc);
};

inline void point2::convert(Vec2 &src, CPoint &dst)
{
	dst.x = (int) (src[0]*resolution);
	dst.y = (int) (src[1]*resolution);
}


point2.cpp


#include "stdafx.h"
#include "point2.h"


int point2::resolution = 96;

void point2::draw(CDC &dc)
{
	CPoint p;
	const int S=7;
	convert(p);
	CPen pen (PS_SOLID,2,RGB(0,0,0));
	CPen *oldpen = (CPen *) dc.SelectObject(&pen);
	CBrush brush;
	brush.CreateSolidBrush(RGB(255,255,0));
	CBrush *oldbrush = (CBrush *) dc.SelectObject(&brush);
	dc.Ellipse(p.x-S,p.y-S,p.x+S,p.y+S);
	dc.SelectObject(oldbrush);
	dc.SelectObject(oldpen);
}


Results


Maintained by John Loomis, updated Wed Jan 24 14:48:52 2007