[[spirala]]
 
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void place (int r, int s, int i, int k);
    void setup ();
 
private:
    Ui::MainWindow *ui;
};
 
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
const int m = 8;
const int n = 2*m+1;
 
void MainWindow::place (int r, int s, int i, int k)
{
    QTableWidgetItem * item = new QTableWidgetItem;
    ui->tableWidget->setItem (r, s, item);
    item->setText (QString::number (i));
 
    QColor c = QColor::fromHsv ((k*45)%360, 255, 255);
    item->setBackgroundColor(c);
}
 
void MainWindow::setup ()
{
    ui->tableWidget->setColumnCount (n);
    ui->tableWidget->setRowCount (n);
    int h = ui->tableWidget->rowHeight (0) * 3 /2;
    for (int c = 0; c<n; c++)
        ui->tableWidget->setColumnWidth (c, h);
 
    int i = 1;
    int r = m; // stred je (r,s), cislovany od 0
    int s = m;
 
    place (r, s, i++, 1); // jednicka
    s++;
 
    for (int k = 2; k <= 2; k++)
    {
        int j;
        for (j = 1; j<=k; j++) place (r++, s, i++, k); // dolu
        r--; s--;
        for (j = 1; j<=2*k-2; j++) place (r, s--, i++, k); // vlevo
        s++; r--;
        for (j = 1; j<=2*k-2; j++) place (r--, s, i++, k); // nahoru
        r++; s++;
        for (j = 1; j<=2*k-2; j++) place (r, s++, i++, k); // vpravo
        s--;r++;
        for (j = 1; j<=k-2; j++)  place (r, s++, i++, k); // dolu
        s++;r--;
    }
 
    for (int k = 3; k <= m+1; k++)
    {
        int j;
        for (j = 1; j<=2*k-2; j++) place (r++, s, i++, k); // dolu
        r--; s--;
        for (j = 1; j<=2*k-2; j++) place (r, s--, i++, k); // vlevo
        s++; r--;
        for (j = 1; j<=2*k-2; j++) place (r--, s, i++, k); // nahoru
        r++; s++;
        for (j = 1; j<=2*k-2; j++) place (r, s++, i++, k); // vpravo
    }
 
}
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    setup ();
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
spirala.txt · Last modified: 2015/03/11 14:29 by 147.32.8.115
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki