1

グラフィックをクリアするために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

だから私は別のアプローチ(背景ではなく線だけをクリアするアプローチ)を知りたいです(存在する場合)

4

2 に答える 2

2

線が描かれると、それを削除する実際の方法はありません ( XOR モードを使用して描画している場合を除きます!)。ただし、できることはいくつかあります。ページ内の行以外のすべてをレンダリングしてそこに保存できます。次に、別のページで、行を含むすべてをレンダリングします。したがって、行を元に戻したい場合は、ページを元に戻すだけです。

例:

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()

于 2012-09-02T10:31:09.243 に答える