М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
milota5
milota5
29.06.2022 22:23 •  Информатика

надо нарисовать правильный восьмиугольник через Python! при tkinter

👇
Ответ:
znayushiy18
znayushiy18
29.06.2022

Відповідь:

from tkinter import *

window = Tk()

window.title("Восьмиугольник")

window.geometry("600x600+0+0")

pole = Canvas(window,width=600,height=600,bg="blue")

x=y=60#смещения для координат x,y

deltad =x/(2**(1/2))#смещение для диагональной прямой

pole.pack()

l=[(0,y),

  (deltad,y-deltad),

  (deltad+x,y-deltad),

  (2*deltad+x,y),

  (2*deltad+x,2*y),

  (deltad+x,2*y+deltad),

  (deltad,2*y+deltad),

  (0,2*y)]

pole.create_polygon(l,fill="white")

window.mainloop()

Тяп-ляп и готово, для этого использовано было теорему Пифагора.

4,8(18 оценок)
Открыть все ответы
Ответ:
32519
32519
29.06.2022
// PascalABC.NET 3.3, сборка 1627 от 27.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=4;
  var xp:=new real[n];
  var yp:=new real[n];
  Writeln('Введите парами координаты четырех вершин');
  for var i:=0 to n-1 do Read(xp[i],yp[i]);
  var (x,y):=ReadReal2('Введите координаты точки:');
  var (i,j,c):=(0,n-1,False);
  while i<n do begin
    if ((yp[i]<=y) and (y<yp[j]) or (yp[j]<=y) and (y<yp [i]))
      and (x<(xp[j]-xp[i])*(y-yp[i])/(yp[j]-yp[i])+xp[i]) then c:=not c;
    j:=i; i+=1;
    end;
  if c then Writeln('Внутри')
  else Writeln('Не внутри')
end.
4,5(35 оценок)
Ответ:
Линда133
Линда133
29.06.2022

// PascalABC.NET 3.6.3

uses School;

function Divizors(n: integer): List<integer>;

begin

 var L := new List<integer>;

 L.Add(1);

 L.Add(n);

 if n > 3 then

   begin

   var k := 2;

   while (k * k <= n) and (k < 46341) do

   begin

     if n mod k = 0 then

     begin

       var t := n div k;

       L.Add(k);

       if k < t then L.Add(t)

       else break

     end;  

     Inc(k)

   end;

   L.Sort;

 end;

 Result := L

end;

begin

 // 1

 if ReadInteger.IsPrime then Println('YES')

 else Println('NO');

 // 2

 ReadInteger.Factorize.First.Println;

 // 3

 var a := Divizors(ReadInteger);

 Print(a.Count, a.Sum)

end.

4,4(49 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ