gpt4 book ai didi

c++ - 清除图形的替代方法

转载 作者:行者123 更新时间:2023-11-30 04:25:16 26 4
gpt4 key购买 nike

我一直在使用cleardevice() 来清除图形...但它会产生几个问题

例如 .. 我创建了一个背景,但我必须清除一些特定的元素,然后我必须使用另一个用户定义的函数 drawb() 绘制背景,同时 cleardevice();造成很多问题

line(x,y,x1,y1);   //suppose this line is to be erased 
//but using cleardevice even clears the background
cleardevice();
drawb(); //to draw board or background

所以我想知道另一种方法(一种只清除线条而不清除背景的方法)(如果存在的话)

最佳答案

一旦绘制了一条线,就没有真正的方法可以将其删除(除非您正在使用 XOR mode 绘制!)。但是,您可以做一些事情。您可以呈现页面中除该行以外的所有内容并将其存储在那里。然后,在另一个页面中呈现所有内容,包括该行。因此,如果您想撤消该行,只需将页面切换回来即可。

一个例子:

setactivepage(0);
// draw stuff, including background
setactivepage(1);
// draw stuff, including background and line
setvisualpage(0); // no line visible
setvisualpage(1); // line visible

此外,如果您想用背景重置屏幕,则无需执行 cleardevice(),因为 drawb() 会覆盖每个像素.

关于c++ - 清除图形的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com