Python 把正方形画成圆圈

Python 把正方形画成圆圈,python,drawing,Python,Drawing,我试图在圆中画出刻字正方形,但我不知道该如何计算起点和终点: import numpy as np import cv2 img = np.zeros([300,300,3],dtype=np.uint8) img.fill(255) # or img[:] = 255 imageWithCircle = cv2.circle(img, (150,150), 60, (0, 0, 255), 2) #startpoint = ... #endpoint = ... imageWithIn

我试图在圆中画出刻字正方形,但我不知道该如何计算起点和终点:

import numpy as np
import cv2

img = np.zeros([300,300,3],dtype=np.uint8)
img.fill(255) # or img[:] = 255

imageWithCircle = cv2.circle(img, (150,150), 60, (0, 0, 255), 2)

#startpoint = ...
#endpoint = ...

imageWithInscribingSquare = cv2.rectangle(imageWithCircle, startpoint, endpoint, (0, 0, 255) , 2)

cv2.imshow("Circle", imageWithCircle)
cv2.waitKey(0)
cv2.destroyAllWindows()
选中此项:

import numpy as np
import cv2

img = np.zeros([300,300,3],dtype=np.uint8)
img.fill(255) # or img[:] = 255

imageWithCircle = cv2.circle(img, (150,150), 60, (0, 0, 255), 2)

r = 60
startpoint = (int(150+(r/(2**0.5))),int(150-(r/(2**0.5))))
endpoint = (int(150-(r/(2**0.5))),int(150+(r/(2**0.5))))

print(startpoint,print(endpoint))


imageWithInscribingSquare = cv2.rectangle(imageWithCircle, startpoint, endpoint, (255, 0, 0) , 2)

cv2.imshow("Circle", imageWithCircle)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出:

计算:

如果半径为“r”,则正方形的边将为√2r,从中心开始,起点是√宽度和宽度小于2r/2√高度增加2r/2,端点高度增加2r/2,反之亦然。

检查此项:

import numpy as np
import cv2

img = np.zeros([300,300,3],dtype=np.uint8)
img.fill(255) # or img[:] = 255

imageWithCircle = cv2.circle(img, (150,150), 60, (0, 0, 255), 2)

r = 60
startpoint = (int(150+(r/(2**0.5))),int(150-(r/(2**0.5))))
endpoint = (int(150-(r/(2**0.5))),int(150+(r/(2**0.5))))

print(startpoint,print(endpoint))


imageWithInscribingSquare = cv2.rectangle(imageWithCircle, startpoint, endpoint, (255, 0, 0) , 2)

cv2.imshow("Circle", imageWithCircle)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出:

计算:


如果半径为“r”,则正方形的边将为√2r,从中心开始,起点是√宽度和宽度小于2r/2√高度增加2r/2,端点高度增加2r/2。

如果知道圆的半径,就知道从圆心到正方形一角的距离;根据圆心的位置,你可以计算出正方形的点。如果你知道圆的半径,你就知道从圆心到正方形一角的距离;根据圆心的位置,你可以计算出正方形的点。