确定二维点是否属于单位圆 - Python 3

时间:2017-01-07 17:03:34

标签: python-3.x

创建一个函数in_circle(x,origin),它使用distance来确定二维点是否落在具有给定原点的单位圆内。 Related question

def distance(x, y):
    return math.sqrt((x[0] - y[0])**2 + (x[1] - y[1])**2)

如何在以下功能中使用距离(x,y)功能

def in_circle(x, origin = [0]*2):

确定一个点是否在圆圈内。

2 个答案:

答案 0 :(得分:1)

我假设你定义了半径

#example for 5 radius
r = 5
def in_circle(x, origin = [0]*2):
    if distance(x,origin)<r:
        print("inside")
    else:
        print("outside")

答案 1 :(得分:0)

您需要做的第一件事是定义圆的结构。对于此示例,我将圆定义为两个元素的元组,其中第一个元素是原点的坐标,第二个元素是圆的半径。例如,((0,0), 3)是一个原点为(0,0)且半径为3的圆圈。

现在您已经定义了一个圆圈,您可以继续检查给定点是否在圆圈内,如下所示:

import math

# Create a unit circle
mycircle = ((0,0), 1)

# Create points
mypoint1 = (3,3)
mypoint2 = (1,1)


# Your definition of distance function
def distance(point1, point2):
    return math.sqrt((point1[0] - point2[0])**2 + (point1[1] - point2[1])**2)

# Defining the function to check if the point is inside or on a circle
def in_circle(point, circle):
    origin, radius = circle
    return radius >= distance(point, origin)

# Test
print(in_circle(mypoint1, mycircle))
# False

print(in_circle(mypoint2, mycircle))
# False

我希望这会有所帮助。