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

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

23.11.2018, 14:42. Показов 2802. Ответов 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
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 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,764
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,764
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,764
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
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru