#include <QtGui>
#include <QApplication>
class TSquareFractal : public QWidget {
public:
TSquareFractal(QWidget *parent = 0)
: QWidget(parent), depth_(0), color_(Qt::white) {
setWindowTitle("T-Square Fractal");
resize(800, 600);
setAutoFillBackground(false);
}
protected:
void paintEvent(QPaintEvent *event) override {
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
QRect rect(10, 10, width() - 20, height() - 20);
drawTSquareFractal(&painter, rect, depth_);
}
private:
void drawTSquareFractal(QPainter *painter, const QRect &rect, int depth) {
if (depth <= 0) {
painter->fillRect(rect, color_);
} else {
int w = rect.width() / 3;
int h = rect.height() / 3;
QRect centerRect(rect.x() + w, rect.y() + h, w, h);
drawTSquareFractal(painter, centerRect, depth - 1);
QRect topRect(rect.x() + w, rect.y(), w, h);
drawTSquareFractal(painter, topRect, depth - 1);
QRect bottomRect(rect.x() + w, rect.y() + 2 * h, w, h);
drawTSquareFractal(painter, bottomRect, depth - 1);
QRect leftRect(rect.x(), rect.y() + h, w, h);
drawTSquareFractal(painter, leftRect, depth - 1);
QRect rightRect(rect.x() + 2 * w, rect.y() + h, w, h);
drawTSquareFractal(painter, rightRect, depth - 1);
}
}
private:
int depth_;
QColor color_;
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
TSquareFractal fractal;
fractal.show();
return app.exec();
}
一个qt/c++ demo,用于显示 T-Square Fractal(T型正方形分形) 分形图
2023-04-24 浏览:
标签ad报错:该广告ID(7)不存在。
- 热门标签
-
- 最新发布
-
- Qt 信号槽与原编译系统(2024-06-04)
- Qt信号槽关联中使用普通变量关联(包含不修改和修改槽内数据两种)、使用引用变量关联对(2023-05-05)
- 一个qt/c++ demo,用于显示 Koch Snowflake (科赫雪花) 分(2023-04-24)
- 一个qt/c++ demo,用于显示 Peano Curve(皮亚诺曲线) 分形图(2023-04-24)
- 一个qt/c++ demo,用于显示 Apollonian Gasket(阿波罗尼恩(2023-04-24)
- 一个qt/c++ demo,用于显示 Terdragon Curve(三头龙曲线)(2023-04-24)
- 一个qt/c++ demo,用于显示 Spiral Fractal(螺旋分形) 分形(2023-04-24)
- 一个qt/c++ demo,用于显示 Sierpinski Tetrahedron((2023-04-24)
- 一个qt/c++ demo,用于显示 Gasket Fractal(镂垫分形) 分(2023-04-24)
- 一个qt/c++ demo,用于显示 Hexagonal Gosper Curve(2023-04-24)
- 半年热点
-
-
一个Qt/C++ Demo,用于实现一个用于显示3D瀑布图的控件效果
浏览: 1097
-
一个qt/c++ demo,用于显示分星图
浏览: 1015