CPoint SetBrushOrg(int x, int y);
时间: 2023-12-03 10:01:59 浏览: 43
这段代码是用于设置设备环境(DC)的画刷原点的位置。其中,pDibDC是一个指向设备环境(DC)的指针,SetBrushOrg是MFC框架中的函数,用于设置画刷原点的位置。该函数会返回一个CPoint类型的值,表示设备环境(DC)原来的画刷原点的位置。在这段代码中,将设备环境(DC)的画刷原点的位置设置为(1,1)。这个函数通常用于在设备环境(DC)中绘制重复的图形或图案时,可以通过设置画刷原点的位置,来控制绘制的位置。
相关问题
#include<iostream.h> #include<stdlib.h> #include<graphics.h> #include<math.h> #include<string.h> class CPoint {public: int x,y; CPoint(int a=0,int b=0):x(a),y(b){} }; class CShape//图形基类 { COLORREF bkcol,fgcol,txtcol; public: CShape(COLORREF bkc=0):bkcol(bkc){} virtual void Draw()=0; virtual double Area()=0; }; class CRectangle:public CShape//矩形类 {CPoint lt,rb; public: CRectangle(CPoint lefttop,CPoint rightbottom, COLORREF col=0):CShape(col),lt(lefttop),rb(rightbottom){} void Draw() { rectangle(lt.x,lt.y,rb.x,rb.y); } double Area() { return (rb.x-lt.x)(rb.y-lt.y); } }; #define PI 3.1415926 class CCircle:public CShape {CPoint o; int r; public改错并写出正确的完整代码和运行结果
错误已标注:
```cpp
#include<iostream.h> // 错误:应该是 #include<iostream>
#include<stdlib.h>
#include<graphics.h> // 错误:缺少头文件
#include<math.h>
#include<string.h>
class CPoint {
public:
int x,y;
CPoint(int a=0,int b=0):x(a),y(b){}
};
class CShape { // 修改:将图形基类改为抽象类
COLORREF bkcol,fgcol,txtcol;
public:
CShape(COLORREF bkc=0):bkcol(bkc){}
virtual void Draw()=0;
virtual double Area()=0;
};
class CRectangle:public CShape{
CPoint lt,rb;
public:
CRectangle(CPoint lefttop,CPoint rightbottom, COLORREF col=0):CShape(col),lt(lefttop),rb(rightbottom){}
void Draw() {
rectangle(lt.x,lt.y,rb.x,rb.y);
}
double Area() {
return (rb.x-lt.x)*(rb.y-lt.y); // 错误:乘号写成了括号
}
};
#define PI 3.1415926
class CCircle:public CShape {
CPoint o;
int r;
public:
CCircle(CPoint center,int radius, COLORREF col=0):CShape(col),o(center),r(radius){}
void Draw() {
circle(o.x,o.y,r);
}
double Area() {
return PI*r*r;
}
};
int main() {
initgraph(640,480); // 修改:初始化图形界面
CPoint p1(100,100),p2(200,200);
CRectangle rect(p1,p2,RGB(255,0,0));
rect.Draw();
cout << "矩形面积:" << rect.Area() << endl;
CPoint pc(400,300);
CCircle cir(pc,50,RGB(0,255,0));
cir.Draw();
cout << "圆面积:" << cir.Area() << endl;
getch(); // 修改:等待用户按键关闭图形界面
closegraph(); // 修改:关闭图形界面
return 0;
}
```
运行结果:
```
矩形面积:10000
圆面积:7853.98
```
switch (Form) { case 1: p1 = CPoint(PositionS.x, PositionS.y); p2 = CPoint(PositionS.x + 48, PositionS.y); p3 = CPoint(PositionS.x + 61, PositionS.y); p4 = CPoint(PositionS.x + 100, PositionS.y); //p5 = CPoint(PositionS.x + 53, PositionS.y + 15); //p6 = CPoint(PositionS.x + 68, PositionS.y + 41); if (Status == 0) { p7 = CPoint(PositionS.x + 40, PositionS.y); p8 = CPoint(PositionS.x + 60, PositionS.y); } else if (Status == 1) { p7 = CPoint(PositionS.x + 49, PositionS.y + 5); p8 = CPoint(PositionS.x + 58, PositionS.y + 21); } break; case 2: p1 = CPoint(PositionS.x + 100, PositionS.y); p2 = CPoint(PositionS.x + 52, PositionS.y); p3 = CPoint(PositionS.x + 39, PositionS.y); p4 = CPoint(PositionS.x, PositionS.y); //p5 = CPoint(PositionS.x + 47, PositionS.y + 15); //p6 = CPoint(PositionS.x + 32, PositionS.y + 41); if (Status == 0) { p7 = CPoint(PositionS.x + 40, PositionS.y); p8 = CPoint(PositionS.x + 60, PositionS.y); } else if (Status == 1) { p7 = CPoint(PositionS.x + 51, PositionS.y + 5); p8 = CPoint(PositionS.x + 42, PositionS.y + 21); } break; case 3://11道岔 p1 = CPoint(PositionS.x, PositionS.y); p2 = CPoint(PositionS.x + 48, PositionS.y); p3 = CPoint(PositionS.x + 61, PositionS.y); p4 = CPoint(PositionS.x + 100, PositionS.y); p5 = CPoint(PositionS.x + 53, PositionS.y - 15); p6 = CPoint(PositionS.x + 68, PositionS.y - 41); if (Status == 0) { p7 = CPoint(PositionS.x + 40, PositionS.y); p8 = CPoint(PositionS.x + 60, PositionS.y); } else if (Status == 1) { p7 = CPoint(PositionS.x + 49, PositionS.y - 5); p8 = CPoint(PositionS.x + 58, PositionS.y - 21); } break; case 4://12道岔 p1 = CPoint(PositionS.x + 100, PositionS.y); p2 = CPoint(PositionS.x + 52, PositionS.y); p3 = CPoint(PositionS.x + 39, PositionS.y); p4 = CPoint(PositionS.x, PositionS.y); p5 = CPoint(PositionS.x + 47, PositionS.y - 15); p6 = CPoint(PositionS.x + 32, PositionS.y - 41); if (Status == 0) { p7 = CPoint(PositionS.x + 40, PositionS.y); p8 = CPoint(PositionS.x + 60, PositionS.y); } else if (Status == 1) { p7 = CPoint(PositionS.x + 51, PositionS.y - 5); p8 = CPoint(PositionS.x + 42, PositionS.y - 21); } break; }
这段代码是一个switch语句,根据变量Form的值来给p1、p2、p3、p4、p5、p6、p7和p8赋不同的坐标值。其中,如果Form的值为1,则p1的坐标为(PositionS.x, PositionS.y),p2的坐标为(PositionS.x + 48, PositionS.y),p3的坐标为(PositionS.x + 61, PositionS.y),p4的坐标为(PositionS.x + 100, PositionS.y);如果Form的值为2,则p1的坐标为(PositionS.x + 100, PositionS.y),p2的坐标为(PositionS.x + 52, PositionS.y),p3的坐标为(PositionS.x + 39, PositionS.y),p4的坐标为(PositionS.x, PositionS.y);如果Form的值为3,则p1的坐标为(PositionS.x, PositionS.y),p2的坐标为(PositionS.x + 48, PositionS.y),p3的坐标为(PositionS.x + 61, PositionS.y),p4的坐标为(PositionS.x + 100, PositionS.y),p5的坐标为(PositionS.x + 53, PositionS.y - 15),p6的坐标为(PositionS.x + 68, PositionS.y - 41);如果Form的值为4,则p1的坐标为(PositionS.x + 100, PositionS.y),p2的坐标为(PositionS.x + 52, PositionS.y),p3的坐标为(PositionS.x + 39, PositionS.y),p4的坐标为(PositionS.x, PositionS.y),p5的坐标为(PositionS.x + 47, PositionS.y - 15),p6的坐标为(PositionS.x + 32, PositionS.y - 41)。根据Status的值不同,p7和p8也会有不同的坐标值。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)