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);
绘制矩形