多个setaspectratio的逻辑是什么呢

0

尝试性想用多张IMAGE进行组合形式输出   

在主界面采用setaspectratio(1, -1);后   

在IMAGE中同样采用setaspectratio(1, -1);后  IMAGE四个象限都画上圆   并不能使IMAGE显示 

纸上坐标系逻辑推断不出来 

#include <graphics.h>
#include <conio.h>

int main()
{
	initgraph(1100, 400, SHOWCONSOLE);
	setlinecolor(RED);
	setorigin(200, 200);

	setaspectratio(1, 1);
	//outtextxy(200, 100, L"200,-100");
	setaspectratio(1, -1);
	outtextxy(200, -100, L"200,100");
	outtextxy(200, 100, L"200,-100");

	//rectangle(0, 100, 200, 200);
	//rectangle(100, 100, 200, 200);
	IMAGE aaa(1100, 200);
	IMAGE bbb(200, 200);
	SetWorkingImage(&bbb);
	setaspectratio(1, -1);
	setorigin(0, 0);
	rectangle(-100, -100, 100, 100);

	outtextxy(50, 50, L"50,50");
	circle(25, 25, 25);
	circle(75, -25, 25);
	circle(50, 50, 50);
	circle(-50, -50, 50);
	circle(50, -50, 50);
	circle(-50, 50, 50);

	SetWorkingImage();
	putimage(200, 0, &bbb, SRCPAINT);
	FlushBatchDraw();
	_getch();
	closegraph();
	return 0;
};
ava

2021-9-18

0

因为 putimage 总是从源图像的 0,0 位置开始贴图。如果你设置原点为 (0, 0),y 轴乘 -1,那就会导致 putimage 贴图获取不到任何内容。你需要在操作完 IMAGE 对象之后,恢复 IMAGE 对象的坐标系,以避免影响 putimage。

ava
慢羊羊

2021-9-18