📄 sierpinski.cpp
字号:
#include "canvas.h"
#include "utils.h"
#include <iostream>
#include <cmath>
using namespace std;
void TriangleFill(Canvas& c, const Point& p1, const Point& p2, const Point& p3)
{
if ( fabs(p1.x - p2.x) > 20)
{
Point mid12( (p1.x+p2.x)/2, (p1.y+p2.y)/2 );
Point mid13( (p1.x+p3.x)/2, (p1.y+p3.y)/2 );
Point mid23( (p2.x+p3.x)/2, (p2.y+p3.y)/2 );
c.DrawTriangle(mid12,mid13,mid23);
TriangleFill(c,p1, mid12, mid13);
TriangleFill(c,mid12, p2, mid23);
TriangleFill(c,mid13, mid23, p3);
}
}
int main()
{
const int WIDTH=460;
const int SIZE=400;
Canvas c(WIDTH,SIZE+10,20,20);
Point top(WIDTH/2,0);
Point lowerleft(WIDTH/2 - SIZE/sqrt(3),SIZE);
Point lowerright(WIDTH/2 + SIZE/sqrt(3),SIZE);
c.SetColor(BLACK);
c.DrawTriangle(top,lowerleft,lowerright);
c.SetColor(WHITE);
TriangleFill(c,lowerleft,top,lowerright);
WaitForReturn();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -