import random
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt5.QtGui import QPainter, QPen, QColor, QBrush
from PyQt5.QtCore import Qt
redTeam = []
for i in range(10):
x = random.randint(0, 1000)
y = random.randint(0, 1000)
redTeam.append([x, y])
blueTeam = []
for i in range(10):
x = random.randint(0, 1000)
y = random.randint(0, 1000)
blueTeam.append([x, y])
px = random.randint(0, 1000)
py = random.randint(0, 1000)
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Draw your think')
self.resize(1000, 1000)
self.show()
def paintEvent(self, e):
qp = QPainter()
qp.begin(self)
self.draw_ellipse(qp)
k = 150
colorPen = self.calcuTeam(k)
qp.setPen(QPen(colorPen, 3))
qp.drawEllipse(px - k, py - k, k * 2, k * 2)
qp.setPen(QPen(Qt.green, 8))
qp.drawEllipse(px - 5, py - 5, 10, 10)
qp.end()
def calcuTeam(self, k):
print('계산하시면 됩니다')
# px, py
red = 0
blue = 0
for i in range(10):
x = px - redTeam[i][0]
y = py - redTeam[i][1]
k_1 = y*y + x*x
if k*k > k_1:
red+= k*k - k_1
for i in range(10):
x = px - blueTeam[i][0]
y = py - blueTeam[i][1]
k_1 = y*y + x*x
if k*k > k_1:
blue+= k*k - k_1
if red > blue:
return Qt.red
elif red < blue:
return Qt.blue
else:
return Qt.green
def draw_ellipse(self, qp):
for i in range(len(redTeam)):
x = redTeam[i][0]
y = redTeam[i][1]
qp.setPen(QPen(Qt.red, 3))
qp.drawEllipse(x-5, y-5, 10, 10)
x = blueTeam[i][0]
y = blueTeam[i][1]
qp.setPen(QPen(Qt.blue, 3))
qp.drawEllipse(x-5, y-5, 10, 10)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
import random
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt5.QtGui import QPainter, QPen, QColor, QBrush
from PyQt5.QtCore import Qt
redMid_x = random.randint(0, 1000)
redMid_y = random.randint(0, 1000)
blueMid_x = random.randint(0, 1000)
blueMid_y = random.randint(0, 1000)
redTeam = []
for i in range(100):
k = random.randint(0, 50)
k *= k
par = random.randint(0, 100)
x = k / 100 * par
y = k / 100 * (100 - par)
if random.randint(0, 1) == 0:
x *= -1
if random.randint(0, 1) == 0:
y *= -1
redTeam.append([redMid_x + x, redMid_y + y])
blueTeam = []
for i in range(100):
k = random.randint(0, 50)
k *= k
par = random.randint(0, 100)
x = k / 100 * par
y = k / 100 * (100 - par)
if random.randint(0, 1) == 0:
x *= -1
if random.randint(0, 1) == 0:
y *= -1
blueTeam.append([blueMid_x + x, blueMid_y + y])
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Draw your think')
self.resize(1000, 1000)
self.show()
def paintEvent(self, e):
qp = QPainter()
qp.begin(self)
self.draw_ellipse(qp)
k = 150
colorPen = self.calcuTeam(k)
qp.setPen(QPen(colorPen, 3))
qp.drawEllipse(px - k, py - k, k * 2, k * 2)
qp.setPen(QPen(Qt.green, 8))
qp.drawEllipse(px - 5, py - 5, 10, 10)
qp.end()
def calcuTeam(self, k):
# px, py
red = 0
blue = 0
for i in range(10):
x = px - redTeam[i][0]
y = py - redTeam[i][1]
k_1 = y*y + x*x
if k*k > k_1:
red+= k*k - k_1
for i in range(10):
x = px - blueTeam[i][0]
y = py - blueTeam[i][1]
k_1 = y*y + x*x
if k*k > k_1:
blue+= k*k - k_1
if red > blue:
return Qt.red
elif red < blue:
return Qt.blue
else:
return Qt.green
def draw_ellipse(self, qp):
for i in range(len(redTeam)):
x = redTeam[i][0]
y = redTeam[i][1]
qp.setPen(QPen(Qt.red, 3))
qp.drawEllipse(x-5, y-5, 10, 10)
x = blueTeam[i][0]
y = blueTeam[i][1]
qp.setPen(QPen(Qt.blue, 3))
qp.drawEllipse(x-5, y-5, 10, 10)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())