python中x=(y=z+1)对不对_Python检查一个点是否在以x,y,z为中心的球体中

我试着检查一个点是否在一个中心点为(x,y,z)的球体内,其中(x,y,z)不是(0,0,0)。在

我用来生成要检查的点的代码:def generatecoords(self, i):

x, y, z = generatepoint()

if i >= 1:

valid = False

while valid == False:

coords = self.checkpoint(x, y, z)

for b in world.starlist:

if coords == world.starlist[b].coords:

coords = self.checkpoint(x, y, z)

else:

valid = True

else:

coords = self.checkpoint(x, y, z)

return coords

def checkpoint(self, x, y, z):

d = math.sqrt(x * x + y * y + z * z)

while d >= self.radius:

x, y, z = generatepoint()

d = math.sqrt(x * x + y * y + z * z)

coords = (int(x), int(y), int(z))

return coords

def generatepoint():

x, y, z = [int(random.uniform(-self.radius, self.radius)) \

for b in range(3)]

return x, y, z

在for循环中调用这些函数来生成字典中的点,同时也检查点不太可能被放在另一个上面的可能性(主要是因为我可以)。在

我试图找出我需要添加到math.sqrt(x * x + y * y + z * z)中的内容,以便它占一个不是(0, 0, 0)的中心。我知道有一种方法可以做到这一点,但这需要几行代码,我宁愿用一行代码来完成。我会在另一个问题的答案的评论中问这个问题,但我现在还不能评论答案。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值