import tkinter as tk
class Form(tk.Frame):
def __init__(self, root):
super().__init__(root)
self.master = root
self.build()
def build(self):
self.canv = tk.Canvas(self, width = 640, height=480)
self.canv.pack()
self._draw()
def _draw(self):
s_x = 10; s_y = 370;
r = 5
for itrtn in range(30):
self.canv.create_oval(s_x - r, s_y - r, s_x + r, s_y + r, outline="blue", width=2)
s_x += 10; s_y -= 5; r += 5;
if __name__ == '__main__':
root = tk.Tk()
root.title('test')
root.geometry('640x480')
form = Form(root)
form.pack()
root.mainloop()
Объяснение:
Рисует примерно то же самое. Логика отрисовки кругов описана в методе Form._draw. Координаты рисования эллипса для метода tkinter.Canvas.create_oval задаются по такой логике: Верхний левый угол (х, у), нижний правый угол (х, у) прямоугольника, в который помещён эллипс
Объяснение:
program treugolnik;
uses crt;
var
x1, y1, x2, y2, x3, y3, p:real;
function dlina(a1,b1, a2,b2:real):real;
begin
dlina:=sqrt(sqr(a1-a2)+sqr(b1-b2));
end;
begin
writeln('Введите координаты 1-ой вершины');
write('x='); readln(x1);
write('y='); readln(y1);
writeln('Введите координаты 2-ой вершины');
write('x='); readln(x2);
write('y='); readln(y2);
writeln('Введите координаты 3-ей вершины');
write('x='); readln(x3);
write('y='); readln(y3);
p:=dlina(x1,y1,x2,y2)+dlina(x1,y1,x3,y3)+dlina(x2,y2,x3,y3);
writeln('Периметр=',p);
end.