在矩形周围绘制一个1/4英寸宽的红色框,矩形的高度为屏幕高度的3/4,宽度为屏幕宽度的2/3。

最终效果: 

 

//在矩形周围绘制一个1/4英寸宽的红色框,矩形的高度为屏幕高度的3/4,宽度为屏幕宽度的2/3。
#include"../实践/GUI/Simple_window.h"
#include"GUI/Graph.h"


int main()
try
{
    using namespace Graph_lib;
    //建立窗口。
    Point tl(100, 100);
    Simple_window win(tl, 1000,800 , "My Window");
    //--------------------------------------------------------------------------------------
    //绘制矩形,矩形的高度为屏幕高度的3/4,宽度为屏幕宽度的2/3。(注意:点坐标、长、宽用函数表示,可以使矩形大小自动适应窗口大小的变化。
    Graph_lib::Rectangle r(Point(win.x_max() * 1 / 8, win.y_max() * 1/ 6), win.x_max() * 3 / 4, win.y_max() * 2 / 3);
    r.set_color(Color::black);
    r.set_style(Line_style(Line_style::solid, 1));
    win.attach(r);
    //-------------------------------------------------------------------------------------
    // 在矩形周围绘制一个1/4英寸宽的红色框。(1/4英寸为75个像素)
    Graph_lib::Rectangle out_red(Point(win.x_max() * 1 / 8-75, win.y_max() * 1 / 6-75), win.x_max() * 3 / 4 + 150, win.y_max() * 2 / 3 + 150);
    out_red.set_color(Color::red);
    out_red.set_style(Line_style(Line_style::solid, 75));
    win.attach(out_red);
    //--------------------------------------------------------------------------------------
    //补全红色框(注意因为“截断”而产生的“1”的问题)。
    Graph_lib::Rectangle r1(Point(win.x_max() * 1 / 8 - 75-75/2, win.y_max() * 1 / 6 - 75-75/2), 75 / 2, 75 / 2);
    r1.set_color(Color::red);
    r1.set_fill_color(Color::red);
    win.attach(r1);

    Graph_lib::Rectangle r2(Point(win.x_max() * 1 / 8 - 75-75/2, win.y_max() * 1 / 6 - 75+ win.y_max() * 2 / 3 + 150-1), 75 / 2, 75 / 2+1);
    r2.set_color(Color::red);
    r2.set_fill_color(Color::red);
    win.attach(r2);

    Graph_lib::Rectangle r3(Point(win.x_max() * 1 / 8 - 75 + win.x_max() * 3 / 4 + 150-1, win.y_max() * 1 / 6 - 75 - 75 / 2), 75 / 2+1, 75 / 2);
    r3.set_color(Color::red);
    r3.set_fill_color(Color::red);
    win.attach(r3);

    Graph_lib::Rectangle r4(Point(win.x_max() * 1 / 8 - 75 + win.x_max() * 3 / 4 + 150-1, win.y_max() * 1 / 6 - 75 + win.y_max() * 2 / 3 + 150-1), 75 / 2+1, 75 / 2+1);
    r4.set_color(Color::red);
    r4.set_fill_color(Color::red);
    win.attach(r4);
    // -------------------------------------------------------------------------------------
    //将控制权交给显示引擎,使GUI系统在屏幕上显示一个对象,并等待用户按下窗口中的“Next”,以便执行下面的程序。
    win.wait_for_button();
    //--------------------------------------------------------------------------------------
}
catch (exception& e) {
    cerr << "error: " << e.what() << '\n';
    return 1;
}
catch (...) {
    cerr << "Oops: unknown exception!\n";
    return 2;
};
//------------------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值