Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 44
1

Напишите программу на языке Python (используя библиотеку tkinter), для анимирования решения следующей задачи

10.12.2022, 00:08. Показов 829. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На двумерной плоскости задано N точек с координатами (X1,Y1), (X2,Y2), ..., (Xn,Yn).
Написать программу, которая находит такую точку Z(x,y), сумма расстояний от которой
до остальных минимальна и:
а) Z - одна из заданных точек;
b) Z - произвольная точка плоскости.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2022, 00:08
Ответы с готовыми решениями:

Напишите задание на Python (используя tkinter) для решения следующей задачи
Здравствуйте всем! Может кто-то сможет помощь с заданием? Напишите задание на Python (используя...

Напишите программу для решения следующей задачи, используя массив
Камера наблюдения регистрирует в автоматическом режиме скорость проезжающих мимо неё автомобилей,...

Напишите программу для решения следующей задачи
Помогите составить условие для третьего треугольника Известны длины трех отрезков, образующих...

Напишите программу на Делфи для решения следующей задачи

Разработать программу на языке Java для решения следующей задачи:
Опишите класс отрезков на плоскости. Задайте функцию сравнения двух отрезков, а также функцию,...

4
1552 / 727 / 316
Регистрация: 02.05.2020
Сообщений: 1,616
10.12.2022, 22:42 2
Цитата Сообщение от Maria_Kim Посмотреть сообщение
а) Z - одна из заданных точек;
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
from tkinter import Tk, Canvas, Label, Button, LEFT
from math import sqrt
WIDTH = 800
HEIGHT = 600
BG_COLOR = "white"
RADIUS = 10
COLOR = "blue"
DELAY = 1500
ACTIVE_COLOR = "red"
RESULT_COLOR = "green"
def canvasClick(event):
  x = event.x
  y = event.y
  index = canvas.create_oval(x-RADIUS, y-RADIUS, x+RADIUS, y+RADIUS, fill=COLOR)
  canvas.points.append((x,y))
  canvas.indexes.append(index)
  status.config(text="N=" + str(len(canvas.points)) + "\nсписок точек: " + str(canvas.points))
  if len(canvas.points) > 2:
    button.config(state="normal")
def buttonClick():
  canvas.unbind('<Button 1>')
  button.destroy()
  result.pack()
  nextStep()
def nextStep():
  if canvas.step > 0:
    canvas.itemconfig(canvas.indexes[canvas.step-1], fill=COLOR)
  for line in canvas.lines:
    canvas.delete(line)
  if canvas.step >= len(canvas.points):
    canvas.itemconfig(canvas.z[1], fill=RESULT_COLOR)
    for point in canvas.points:
      if canvas.z[0] == point:
        continue
      canvas.create_line(canvas.z[0], point, fill=RESULT_COLOR, width=RADIUS//4)
    result.config(text="минимальная длина расстояний: " +
      str(canvas.length) + "\nнайдена точка Z" + str(canvas.z[0]))
    return
  length = 0.0
  canvas.itemconfig(canvas.indexes[canvas.step], fill=ACTIVE_COLOR)
  current = canvas.points[canvas.step]
  for point in canvas.points:
    if current == point:
      continue
    line = canvas.create_line(current, point, fill=ACTIVE_COLOR, width=RADIUS//4)
    canvas.lines.append(line)
    x1 = current[0]
    y1 = current[1]
    x2 = point[0]
    y2 = point[1]
    length = length + sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1))
  if canvas.z is None:
    canvas.z = (current, canvas.indexes[canvas.step])
    canvas.length = length
  else:
    if canvas.length > length:
      canvas.z = (current, canvas.indexes[canvas.step])
      canvas.length = length
  result.config(text="Длина расстояний: " + str(canvas.length))
  canvas.step = canvas.step + 1
  root.after(DELAY, nextStep)
root = Tk()
canvas = Canvas(root, width = WIDTH, height = HEIGHT, bg = BG_COLOR)
canvas.step = 0
canvas.points = []
canvas.indexes = []
canvas.lines = []
canvas.z = None
canvas.length = 0
canvas.pack()
canvas.bind('<Button 1>', canvasClick)
status = Label(root, text="N=0", wraplength=WIDTH, justify=LEFT)
status.pack()
button = Button(root, text="найти точку Z", state="disabled", command=buttonClick)
button.pack()
result = Label(root, justify=LEFT)
root.mainloop()
1
0 / 0 / 0
Регистрация: 07.12.2022
Сообщений: 44
11.12.2022, 00:26  [ТС] 3
спасибо большое
0
2 / 2 / 0
Регистрация: 11.12.2022
Сообщений: 61
12.12.2022, 23:55 4
kapbepucm, Можете , пожалуйста, помочь с частью b в этом задании. "а" у меня получилось написать, а с b как раз какая то проблема. буду очень благодарен за помощь
0
1552 / 727 / 316
Регистрация: 02.05.2020
Сообщений: 1,616
13.12.2022, 00:02 5
А я не знаю алгоритма поиска точки, сумма растояний от которой до любой из заданых была бы минимальна. В пункте "a"- я решал это банальным перебором.
0
13.12.2022, 00:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2022, 00:02
Помогаю со студенческими работами здесь

Напишите программу в среде Delphi для решения следующей задачи:

Составить блок-схему и написать программу на языке Паскаль для решения следующей задачи:
Концентрация хлорной извести в бассейне объемом V м3 составляет 10г/л. Через одну трубу в...

Составить блок-схему и программу на языке Паскаль для решения следующей экономической задачи
Составить блок-схему и программу на языке Паскаль для решения следующей экономической задачи выдать...

Напишите программу для работы в среде Delphi для решения следующей задачи:
X=\begin{cases} \frac{a}{b}+1 &amp; \text{ , } a \gt b \\ a+25 &amp; \text{ , } a=b \\ \frac{a*b-2...

Напишите программу для работы в среде Delphi для решения следующей задачи:
Срочно нужно, помогите пожалуйста.

Написать программу на языке Python для решения задачи
Написать программу на языке Python для решения задачи. Результат работы программы - таблица...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru