Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 06.12.2017
Сообщений: 24

Рисование рекурсивных фигур

23.11.2018, 14:42. Показов 2705. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста, может у кого-нибудь есть алгоритмы рисования рекурсивных фигур с помощью библиотеки PyQt?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2018, 14:42
Ответы с готовыми решениями:

Рисование случайных фигур
Всем привет. Хочу сделать программу, у которой есть кнопки "Треугольники", "Прямоугольники", "Круги", "Линии" и...

Библиотека для рисование математических фигур с циклом на Python?
Привет. Посоветуйте мне пожалуйста самые лучшие библиотеки для рисование на python. Требование: Не сложная, для выполнение простых фигур, и...

«Графический модуль turtle» Рисование фигур произвольного размера
https://yapx.ru/v/SANvr что нужно сделать первое 1. Игральный кубик: нарисовать квадрат, внутри которого – одну окружность (в центре) ...

7
Эксперт Python
 Аватар для dondublon
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,180
Записей в блоге: 6
23.11.2018, 17:03
А в чём специфика PyQt в этом вопросе?
0
0 / 0 / 0
Регистрация: 06.12.2017
Сообщений: 24
23.11.2018, 17:08  [ТС]
Просто задание в университете, лабораторная работа. С помощью библиотеки PyQt реализовать рисование рекурсивных фигур (рисование графического изображения, оконный интерфейс)
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,762
23.11.2018, 18:36
Цитата Сообщение от Arina26 Посмотреть сообщение
алгоритмы рисования рекурсивных фигур с помощью библиотеки PyQt?
типа так
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from PyQt5 import Qt
 
 
def paint(p,x,y,w,h):
    if w < 10  or h < 10: return
    p.drawEllipse(x,y,w,h)
    paint(p,x+10,y,w - 10,h - 10)
    
class View(Qt.QMainWindow):
    def __init__(self):
        super().__init__()
        self.label = Qt.QLabel()
        self.pix = Qt.QPixmap(800,600)
        self.pix.fill(Qt.Qt.black)
        self.setCentralWidget(self.label)
        self.setFixedSize(self.pix.size())
        self.draw()
        
        
    def draw(self):
        p = Qt.QPainter(self.pix)
        p.setRenderHints(Qt.QPainter.Antialiasing)
        pen = Qt.QPen()
        pen.setWidthF(1.5)
        pen.setColor(Qt.QColor(255,0,0))
        p.setPen(pen)
        paint(p,10,50,700,500)
        self.label.setPixmap(self.pix)
                
if __name__=="__main__":
    app = Qt.QApplication([])
    w = View()
    w.show()
    app.exec_()
0
0 / 0 / 0
Регистрация: 06.12.2017
Сообщений: 24
23.11.2018, 18:50  [ТС]
Да, типа такого. А рекурсивное дерево построить, чтобы еще можно было с клавиатуры вводить высоту дерева
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,762
23.11.2018, 18:59
что значит высота дерева?
если вам известна глубина рекурсии заранее, вам не нужна рекурсия
0
0 / 0 / 0
Регистрация: 06.12.2017
Сообщений: 24
23.11.2018, 19:03  [ТС]
Да, не высота, а глубина дерева, извиняюсь
Просто я нашла алгоритм рисования рекурсивного дерева на python tkinter на основе глубины ввода пользователем
Но мне нужно это написать на PyQt
Поэтому попросила помощи
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,762
23.11.2018, 20:23
кнопку добавить можно, а с глубиной я не понял.
рекурсия нужна когда неизвестно количество итераций (в моем случае w > 10)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from PyQt5 import Qt
 
 
def paint(p,x,y,w,h):
    if w < 10 : return
    p.drawEllipse(x,y,w,h)
    paint(p,x+5,y+1,w - 10,h - 10)
    
class View(Qt.QWidget):
    def __init__(self):
        super().__init__()
        self.label = Qt.QLabel()
        self.pix = Qt.QPixmap(800,600)
        self.pix.fill(Qt.Qt.black)
        self.label.setPixmap(self.pix)
        self.line = Qt.QLineEdit()
        self.line.setText('100')
        self.btn = Qt.QPushButton('Draw')
        self.btn.clicked.connect(self.draw)
        grid = Qt.QGridLayout(self)
        grid.setContentsMargins(0,0,0,0)
        grid.addWidget(self.label,0,0,10,10)
        grid.addWidget(self.line,10,0,1,2)
        grid.addWidget(self.btn,10,2,1,1)
                
    def draw(self):
        p = Qt.QPainter(self.pix)
        p.setRenderHints(Qt.QPainter.Antialiasing)
        pen = Qt.QPen()
        pen.setWidth(1)
        pen.setColor(Qt.QColor(255,0,0))
        p.setPen(pen)
        paint(p,50,150,700,400)
        self.label.setPixmap(self.pix)
        self.repaint()
                
if __name__=="__main__":
    app = Qt.QApplication([])
    w = View()
    w.show()
    app.exec_()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.11.2018, 20:23
Помогаю со студенческими работами здесь

Рисование фигур
Нариуйте фигуру своего варианта.Пожалуйста помогите

Рисование фигур Python
Вот задание, мой вариант 2:я попробывал сам написать, но учители не понравилось и сказала: Шрифт не тот, последний рисунок - что то...

Рисование фигур
Всем доброго дня, у меня возник вопрос, можно ли через классы создать и вывести на форму в с # круг или эллипс?

Рисование фигур
Добрый вечер. Нужна помощь с рисованием фигур. Дали задание нарисовать трехмерный куб, через 2 класса(один наследует второй). Не могу...

Рисование фигур
Суть такова. Нужно сделать так, сначала вводишь число и программа строит фигуру с этим количеством вершин (допустим ввел число 5 и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru