Как нарисовать треугольник в консоли?
Звездный треугольник
Напишите функцию draw_triangle(fill, base) , которая принимает два параметра:
fill – символ заполнитель;
base – величина основания равнобедренного треугольника;
Примечание. Гарантируется, что основание треугольника – нечетное число.
Тестовые данные
Sample Input 1: * 9 Sample Output 1: * ** *** **** ***** **** *** ** *
А вот мой код:
def draw_triangle(fill, base): pass fill = input() base = int(input()) for i in range(1,base+1): print(fill * min(i, base - i + 1)) draw_triangle(fill, base)
Как нарисовать треугольник в python
Блог веб разработки статьи | видеообзоры | исходный код

tkinter python рисование

Всем привет! Сегодня мы с вами познакомимся с элементом canvas который переводится как холст. Именно на данном холсте мы можем производить отрисовку различных фигур и текста. Итак, поехали!
Для того чтобы начать отрисовку в окне необходимо создать элемент canvas.
canvas = Canvas(window, width=600,height=600,bg="gray", cursor="pencil")
C помощью виджета canvas у нас создается холст. В него мы передали следующие параметры:
window — главное окно
width, height — ширина и высота холста
bg — заливка холста(gray — серый цвет)
cursor — курсор в фокусе холста(pencil — карандаш)
from tkinter import * window = Tk() window.title('Работа с canvas') canvas = Canvas(window,width=600,height=600,bg="gray", cursor="pencil") canvas.pack() window.mainloop()

C помощью метода pack() мы выводим наш холст в главное окно.
Все теперь мы можем переходить к отрисовке. Начнем с простых линий.
canvas.create_line(0,0,600,600,width=5,fill="yellow") canvas.create_line(0,600,600,0,width=5,fill="yellow")

Здесь мы создали две прямых линии. Для их создания воспользовались методом create_line() который принимает в себя следующие параметры.
Первые два параметра это координаты x,y первой точки начало отрезка.
Вторые два параметры это координаты x,y второй точки конец отрезка.
width — толщина линии.
fill — заливка, цвет линии(yellow — желтый).
Для того чтобы на холсте нарисовать прямоугольник или квадрат, нужно воспользоваться методом create_rectangle().
canvas.create_rectangle(50,250,300,500,fill="white",outline="blue")

C помощью метода create_rectangle()мы нарисовали квадрат. Данный метод принимает в себя следующие параметры:
Первые два параметра координаты левого верхнего угла прямоугольника.
Вторые два параметра координаты правого нижнего угла прямоугольника.
fill — цвет заливки прямоугольника.
outline — цвет рамки прямоугольника.
Теперь переходим к отрисовке эллипсов и кругов.
Для того чтобы нарисовать круг или овал нам достаточно воспользоваться методом create_oval().
canvas.create_oval([400,250],[450,300],fill="pink")

В основе отрисовки круга с помощью данного метода лежит отрисовка прямоугольника. То есть по сути мы отрисовываем невидимый квадрат куда может быть помещен в полную высоту и ширину квадрат или овал.
Данный метод принимает собой следующие аргументы:
Первые два аргумента в квадратных скобочках координаты x,y левого верхнего угла квадрата.
Вторые два аргумента в квадратных скобочках координаты x, y правого нижнего угла квадрата.
fill — цвет заливки овала.
Для отрисовки более сложных фигур треугольников, многоугольников, многогранников.
Мы можем воспользоваться методом create_polygon().
canvas.create_polygon([400,400],[300,400],[350,300],fill="gray", outline="yellow")

Здесь мы нарисовали треугольник. В качестве параметров данный метод принимает пары значений координат точек которые последовательно между собой соединяются прямыми.
Точек в разных координатах можно создавать сколько угодно. В результате можно нарисовать фигуру практически любой сложности. Свойство fill отвечает за цвет заливки фигуры, а outline за ее контур. Заметьте мы указали цвет заливки точно такой же как и цвет холста и в результате у нас получился эффект не закрашенной фигуры.
И напоследок рассмотрим отрисовку текста в canvas.
canvas.create_text(250,280,text="Текст в canvas", font="Verdana 12",justify=CENTER,fill="red")

За отрисовку текста в canvas отвечает метод create_text(). В него передаются следующие параметры:
Первые два параметра координаты x, y расположения текста на холсте.
text — текст который мы хотим нарисовать
font — шрифт и размер текста
justify — выравнивание текста(слева, справа, по центру)
fill — цвет текста
Весь написанный за сегодня код выглядит так:
from tkinter import * window = Tk() window.title('Работа с canvas') canvas = Canvas(window,width=600,height=600,bg="gray", cursor="pencil") canvas.create_line(0,0,600,600,width=5,fill="yellow") canvas.create_line(0,600,600,0,width=5,fill="yellow") canvas.create_rectangle(50,250,300,500,fill="white",outline="blue") canvas.create_oval([400,250],[450,300],fill="pink") canvas.create_polygon([400,400],[300,400],[350,300],fill="gray", outline="yellow") canvas.create_text(250,280,text="Текст в canvas", font="Verdana 12",justify=CENTER,fill="red") canvas.pack() window.mainloop()
Отлично! Сегодня мы с вами познакомились с основами рисования canvas библиотеки tkinter.
Если у вас появились какие либо вопросы пишите в группу
или оставляйте их в комментариях к данной статье.
Также у меня есть канал на
где я каждую неделю публикую новые видео посвященные веб разработке. Так что переходите и будем развиваться вместе.
На этом у меня на сегодня все. Желаю вам успехов и удачи! Пока!
Оцените статью:
Статьи
- кодирование JavaScript
- column css
- Конструктор функций javaScript
- phpmailer php
- details html
- произношение javascript
- javascript время
- Как я пришел к этому.
Комментарии
Внимание. Комментарий теперь перед публикацией проходит модерацию
Евгений
12:00 12-11-2019
Не подскажите как повернуть текст на 90 градусов чтобы подписать ось Y
© 2017-2024 webfanat.com Все права защищены.

Запись экрана
Данное расширение позволяет записывать экран и выводит видео в формате webm
Добавить приложение на рабочий стол
Как нарисовать треугольник?
Как нарисовать треугольник так чтобы внутри треугольника было пусто.
так получается сделать но получается полный
for i in range(n+1): for j in range (n-i) : print(end = " ") for j in range (i + 1): print("*", end = " ") print()
- Вопрос задан более двух лет назад
- 952 просмотра
6 комментариев
Простой 6 комментариев
А что такое «треугольник Pyton»?
Salim @saver116 Автор вопроса
dmshar, треугольник на Pyton

Salim, то есть тега, который висит над вопросом, не достаточно? надо обязательно воткнуть его в заголовок и придать ему бессмысленности?
Salim, А что такое «Pyton»? Ну хоть переписать название вы без ошибок можете? Это же название языка, который вы как бы изучаете.

Звучит как оскорбление

А что такое «Pyton»? Ну хоть переписать название вы без ошибок можете? Это же название языка, который вы как бы изучаете.
Праффисианалы на марше.
Решения вопроса 0
Ответы на вопрос 2

rusyska55011 @rusyska55011
height = 10 for row_level in range(height): string = '' for left_step in range(height - row_level): string += ' ' string += '*' for right_step in range(row_level * 2): string += ' ' print(string + '*') else: string = '' for i in range(height * 2 + 2): string += '*' print(string)
Треугольник Серпинского¶
Ещё один фрактал, обладающий свойством самоподобия, — это треугольник Серпинского. Его пример показан на рисунке 3. Треугольник Серпинского иллюстрирует трёхходовой рекурсивный алгоритм. Процедура его отрисовки вручную очень проста. Начинаем с большого треугольника, который делим на четыре маленьких, связанных с серединами сторон первоначального. Игнорируя вновь созданный внутренний треугольник, делаем всё то же самое для каждого из трёх угловых. Каждый раз при создании нового набора треугольников, вы рекурсивно применяете эту процедуру к трём меньшим угловым фигурам. Так можно продолжать до бесконечности (если у вас достаточно острый карандаш). Перед тем, как продолжить чтение, можете попробовать самостоятельно нарисовать треугольник Серпинского, используя описанный метод.

Рисунок 3: Треугольник Серпинского.
Поскольку мы можем повторять этот алгоритм до бесконечности, что сделать базовым случаем? Им станет произвольное число — сколько раз мы хотим разделить треугольник на части. Иногда это число называют “степенью” фрактала. Каждый раз при рекурсивном вызове мы вычитаем из степени единицу, пока она не станет равной нулю. Тогда мы останавливаем рекурсию. Код, генерирующий треугольник Серпинского с рисунка 3, показан в ActiveCode 4.
Run Save Load Show in Codelens
Рисование треугольника Серпинского (lst_st)
Программа из ActiveCode 4 следует изложенным выше идеям. Первое, что делает sierpinski , — это прорисовывает внешний треугольник. Затем идут три рекурсивных вызова, по одному для каждого из новых угловых треугольников, полученных после соединения средних точек сторон. Мы снова используем стандартный модуль Python turtle . Вы можете изучить в подробностях все его методы, воспользовавшись командой help('turtle') в командной строке Python.
Посмотрите на код и подумайте, в каком порядке будут прорисовываться треугольники. Поскольку точный порядок углов определяется спецификацией начального набора, давайте предположим, что углы идут в следующем порядке: нижний левый, верхний, нижний правый. Так как функция sierpinski вызывает сама себя, вычисление будет идти к наименьшему возможному треугольнику в левом нижнем углу, а затем уже будут заполняться остальные треугольники в обратном порядке. Потом заполнятся треугольники в верхнем углу — к наименьшему и самому верхнему. Наконец, будут заполнен правый нижний угол, опять же по направлению к наименьшему нижнему правому.
Иногда полезно думать о рекурсивных алгоритмах в терминах диаграммы вызовов функции. Рисунок 4 показывает, что рекурсивные вызовы всегда начинаются слева. Активная функция выделена чёрным, неактивные вызовы — серым. Чем ниже вы спускаетесь по рисунку 4, тем меньше треугольники. Функция заканчивает рисунок одного уровня за один раз; закончив с нижней левой частью, она перемещается к нижней середине и так далее.

Рисунок 4: Построение треугольника Серпинского.
Функция sierpinski сильно зависит от функции getMid . Последняя принимает в качестве аргументов две конечные точки и возвращает точку, находящуюся по середине между ними. В дополнение, ActiveCode 4 содержит функцию раскраски треугольников, использующую методы begin_fill и end_fill из модуля turtle . Это означает, что каждая степень треугольника Серпинского рисуется другим цветом.
readers online now | | Back to top
© Copyright 2014 Brad Miller, David Ranum. Created using Sphinx 1.2.3.