2

我正在编写一个 C++ 图形程序。我需要平移、缩放和旋转这个菱形(以及其他形状)。我想编写一个函数来做到这一点,但我还没有弄清楚如何将 x1、y1、x2、y2 从鼠标输入(或键盘输入)传递给我想要编写的新转换函数。
我想在 BGI 屏幕上绘制一个形状,然后单击“翻译”按钮,然后输入一些变量和形状变换。
仅供参考,我使用 BGI 做图形。我用鼠标输入绘制的一些形状,一些用键盘输入绘制的形状。
这是我的代码:

void drawRhombus (int x1, int y1, int x2, int y2)
{
    int x3 = x2 + (x2 - x1);
    int y3 = y1;
    int x4 = x2;
    int y4 = y1 + (y1 - y2);

    lineBresenham(x1, y1, x2, y2);
    lineBresenham(x2, y2, x3, y3);
    lineBresenham(x3, y3, x4, y4);
    lineBresenham(x4, y4, x1, y1);
}

if (LOWORD(wParam) == 9) {  
                cout<<"Draw Rhombus"<<endl; 
                int x1, y1, x2, y2 = 0;             
                int count = 0;
                coordinateLines();
                while(1) 
                {
                    delay (0.0001);
                    if (ismouseclick(WM_LBUTTONDOWN))
                    {
                        getmouseclick(WM_LBUTTONDOWN, x1, y1);
                        cout<<"A("<<setXMachine2User(x1)<<","<<setYMachine2User(y1)<<")\n";
                        putpixel(x1,y1,color);
                        count++;
                    }
                    if (count == 1)
                    {
                        if (ismouseclick(WM_LBUTTONUP))
                        {
                            getmouseclick(WM_LBUTTONUP, x2, y2);                        
                            cout<<"B("<<setXMachine2User(x2)<<","<<setYMachine2User(y2)<<")\n";
                            drawRhombus(x1, y1, x2, y2);
                            cout<<"-------------------------------"<<endl;
                            count++;                    
                        }

                    }
                    if (count == 2)
                    {
                        count = 0;              
                    }   
                }           

            }
4

0 回答 0