矩形输出问题
书上的一道练习题不会做了。请教大侠。
我用上一道题生成一个类,用四个点的坐标(8个double值)表示一个矩形,judgement functions判定初始的数值是不是一个矩形和是不是一个正方形。
// lx6.13: rectangle.h
// create a class Rectangle
#ifndef RECTANGLE_H
#define RECTANGLE_H
class Rectangle
{
public:
// constructor
Rectangle( double = 0.0, double = 0.0, double = 0.0, double = 1.0, double = 1.0, double = 1.0, double = 1.0, double = 0.0 );
// set functions
void setRectangle( double, double, double, double,
double, double, double, double );
void setPoint1( double, double );
void setPoint2( double, double );
void setPoint3( double, double );
void setPoint4( double, double );
// get functions
double getPoint1x();
double getPoint1y();
double getPoint2x();
double getPoint2y();
double getPoint3x();
double getPoint3y();
double getPoint4x();
double getPoint4y();
// print functions
void printRectangle();
// compute functions
double computeLength();
double computeWidth();
double computePerimeter();
double computeArea();
// judgement function
bool isRectangle();
bool isSquare();
private:
double x1;// 第一点x
double y1;// 第一点y
double x2;
double y2;
double x3;
double y3;
double x4;
double y4;
};
#endif
后来下一道题是:
修改上一练习的Rectangle类,用draw函数在矩形所在象限的25*25闭合框中显示这个长方形。用setFillCharacter函数指定绘制长方形内部的字符。用setPerimeterCharacter函数指定绘制长方形四边的字符。还可以加上函数对长方形进行比例缩放、旋转和在第一象限范围中移动。
所以我加上了以下函数:
// draw frnctions
void draw();
char setFillCharacter();
char setPerimeterCharacter();
我在draw函数中定义了一个char frame[ 21 ][ 21 ] = { ' ' }的字符二维数组,初始化为空格,然后判定在长方形内的赋值成setFillCharacter(); 在边上的点赋值成setPerimeterCharacter(); 然后输出数组。
我知道我的方法很笨,但是也没能成功,修改了几次,有时什么也不显示就过去了,有时在执行中报错。
请问这种题应该如何做?还有我这个只能实现与横纵坐标平行的矩形,可是我之前那个类是可以判断斜矩形的,斜矩形如何输出呢?
[解决办法]
判断坐标即可 ~