728x90
# 화면 크기
w = GetSystemMetrics(0)
h = GetSystemMetrics(1)
# 정사각형
w = h
# 검정색 화면 배경
img = np.zeros((h, w, 3), np.uint8)
X = []; Y = []
# 확산할 점(사각)들의 총 수량
LL = 400
# 위치 선정 - 동일한 위치에 또는 임의의 위치에
for i in range(LL):
#x = random.randint(0, w)
#y = random.randint(0, h)
x = int(w/2)
y = int(h/2)
X.append(x)
Y.append(y)
X = np.array(X)
Y = np.array(Y)
#print(X, X[0], X[1])
# 사각형 점의 가로(높이), 세로(폭) 픽셀
k = 5
# 확산 속도 - 추후 온도 등의 매개변수로 활용 가능
sp = 5
# 영역에 남은 점들 수 (퍼센트로)
r = [];
# 연산 횟수 : 경과 시간으로 보면됨.
C = []
cou = 0
while True:
img = np.zeros((h, w, 3), np.uint8)
se = 0
cou += 1
for i in range(LL)
# 경계 영역에서 벗어난 점들은 제외
if X[i] > k and X[i] < w-k and Y[i] > k and Y[i] < h-k:
xp = X[i]
yp = Y[i]
# 점들의 위치 변화
xp += random.randint(-sp, sp)
yp += random.randint(-sp, sp)
# 영역 이미지에 점들을 녹색으로 표시
img = cv2.rectangle(img, (xp-k, yp-k), (xp+k, yp+k), (0, 255, 0), -1)
X[i] = xp
Y[i] = yp
se += 1
# 점들의 변화를 퍼센트로 수집
r.append(se*100/LL)
# 변화 횟수 수집
C.append(cou)
# 퍼센트 변화에 대한 곡선 함수
coef = np.polyfit(r, C, 1)
# 점들의 움직임을 이미지로 나타냄
cv2.imshow('img', img)
cv2.waitKey(1)
# 남은 점들을 퍼센트로 나타냄
plt.plot(C, r, 'r')
plt.pause(0.001)
plt.clf()
728x90
'파이썬(PYTHON)' 카테고리의 다른 글
양자 움직임 (작성중) (0) | 2022.03.30 |
---|---|
트위터 아이디 수집 (collecting twitter ID) - ver 0.1 (0) | 2022.03.23 |
새로운 머신러닝 이론 (가설) (0) | 2022.03.04 |
컨베이어 움직임 DETECT (0) | 2022.01.24 |
논문 초안 - 작성 중 (2) | 2022.01.14 |