c++图形变化

rotateScaleMove

 

#include<windows.h>
#include <SFML/Graphics.hpp>
using namespace sf;
int main()
{
	
	float scale = 1;
	RenderWindow window(VideoMode(950, 500), "My Window");
	window.setFramerateLimit(30);
	ConvexShape covex1(4);
	covex1.setPoint(0, Vector2f(50, 50));
	covex1.setPoint(1, Vector2f(100, 50));
	covex1.setPoint(2, Vector2f(100, 100));
	covex1.setPoint(3, Vector2f(50, 100));
	covex1.setPosition(300, 300);
	covex1.setFillColor(Color::Red);
	covex1.setOrigin(75, 75);
	covex1.setOutlineThickness(3);
	covex1.setOutlineColor(Color::White);
	bool scaleSwitch = false;
	while (true)
	{
		covex1.setScale(scale, scale);
		
		if (scale > 3) {
			scaleSwitch = true;
		}
		if (scale < 0.5) {
			scaleSwitch = false;
		}
		if (scaleSwitch == false) {
			scale += 0.05;
			covex1.move(5, 0);

		}
		if (scaleSwitch == true) {
			scale -= 0.05;
			covex1.move(-5, 0);

		}
		window.clear();
		covex1.rotate(3);
		window.draw(covex1);
		window.display();
	}
}

    float scale = 1;

缩放倍数
    RenderWindow window(VideoMode(950, 500), "My Window");

简历绘图窗口
    window.setFramerateLimit(30);

1秒30帧
    ConvexShape covex1(4);
    covex1.setPoint(0, Vector2f(50, 50));
    covex1.setPoint(1, Vector2f(100, 50));
    covex1.setPoint(2, Vector2f(100, 100));
    covex1.setPoint(3, Vector2f(50, 100));

四点绘制矩形
    covex1.setPosition(300, 300);

确定矩形位置
    covex1.setFillColor(Color::Red);

设定矩形颜色为Red
    covex1.setOrigin(75, 75);

设置图案旋转中心
    covex1.setOutlineThickness(3);

设定图形描边宽度
    covex1.setOutlineColor(Color::White);

设置图形描边颜色

while (true){}

实现动态图形变换区域

covex1.setScale(scale, scale);

图形缩放
        
        if (scale > 3) {
            scaleSwitch = true;
        }
        if (scale < 0.5) {
            scaleSwitch = false;
        }

变换条件
        if (scaleSwitch == false) {
            scale += 0.05;
            covex1.move(5, 0);

        }
        if (scaleSwitch == true) {
            scale -= 0.05;
            covex1.move(-5, 0);

        }

参数变化
        window.clear();

清理绘图窗口
        covex1.rotate(3);
执行旋转操作 

       window.draw(covex1);

绘制矩形

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值