Я пытаюсь исправить свой код, чтобы передавать значения через классы, потому что этого хочет мой учитель.Я получаю ошибку атрибута, и я не уверен, что я сделал неправильно, потому что класс Point работает сам по себе.Функция self.create_oval также не будет работать без двух аргументов.
#Impot libraries that you need
import math
from Tkinter import *
from random import randint
# the 2D point class
class Point(object):
#Constructor
def __init__(self, x=0.0, y=0.0):
self.x = self.x
self.y = self.y
def __str__(self):
#returns the point in string format, also its known as the "magic function"
return "({},{})".format(self.x, self.y)
#Accesser (Getter)
@property
def x(self):
return self._x
#Setter (Mutator)
@x.setter
def x(self, value):
self._x = value
@property
def y(self):
return self._y
@y.setter
def y(self, value):
self._y = value
#Now we need to make a function that finds the distance between 2 points
def dist(self, otherPoint):
theDistance = math.sqrt((otherPoint.x - self.x)**2 + (otherPoint.y - self.y)**2)
return theDistance
#Now we need to make a function that finds the midpoint between 2 points
def midpt(self, otherPoint):
theMidpointx = (self.x + otherPoint.x)/2
theMidpointy = (self.y + otherPoint.y)/2
return Point(theMidpointx, theMidpointy)
# the coordinate system class: (0,0) is in the top-left corner
# inherits from the Canvas class of Tkinter
class CoordinateSystem(Canvas):
#Make some class variables
#We need a list to get colors from
colors= [ "black", "red", "green", "blue", "cyan", "yellow", "magenta" ]
#We have to know how big we want the point
pointRadius = 0
#Construct Your Class
def __init__(self, master):
Canvas.__init__(self, master, bg = "white")
self.pack(fill = BOTH, expand = 1)
#get those random points!!!
def plotPoints(self, n):
for i in range(n):
x = randint(0, WIDTH - 1)
y = randint(0, HEIGHT - 1)
thePoints = Point(x, y)
plot(thePoints)
#Plot those points
def plot(self, c):
#This chooses a random color for the point
color = colors[randint(0, len(colors) - 1)]
color2 = colors[randint(0, len(colors) - 1)]
#This actually graphs the point
self.create_oval(x, y, x + pointRadius * 2, y + pointRadius * 2, outline = color, fill = color2)
##########################################################
# ***DO NOT MODIFY OR REMOVE ANYTHING BELOW THIS POINT!***
# the default size of the canvas is 800x800
WIDTH = 800
HEIGHT = 800
# the number of points to plot
NUM_POINTS = 5000
# create the window
window = Tk()
window.geometry("{}x{}".format(WIDTH, HEIGHT))
window.title("2D Points...Plotted")
# create the coordinate system as a Tkinter canvas inside the window
s = CoordinateSystem(window)
# plot some random points
s.plotPoints(NUM_POINTS)
# wait for the window to close
window.mainloop()
Я не знаю, что означает эта вещь, добавляя больше деталей, поэтому я просто хочу добавить кучу случайных вещей и надеюсь, что это сработает.все мы видим, что мы не знаем, как мы работаем с кем-то, кто мы работаем с кем-то, кто делает это, или что мы делаем это?