gpt4 book ai didi

python - 添加随机加权点

转载 作者:行者123 更新时间:2023-12-01 02:27:12 25 4
gpt4 key购买 nike

假设我有一个空白 Canvas ,其中有 2 个红点。

是否有一种算法可以在 Canvas 中随机添加一个点,但在某种程度上更偏向于具有所提供半径的红点?

以下是一个粗略图像作为示例: enter image description here

尽管这个问题是针对 Python 的,但它确实适用于任何语言。

最佳答案

当然。随机选择第一个点或第二个点,然后在极坐标中生成一些具有单尺度参数的分布,然后平移中心点位置。选择一些合理的径向分布(下面代码中的高斯分布、指数分布或柯西分布也可能有效)

import math
import random

import matplotlib.pyplot as plt

def select_point():
p = random.random()
if p < 0.5:
return 0
return 1

def sample_point(R):
"""
Sample point inpolar coordinates
"""
phi = 2.0 * math.pi * random.random() # angle
r = R * random.gauss(0.0, 1.0) # might try different radial distribution, R*random.expovariate(1.0)

return (r * math.cos(phi), r * math.sin(phi))

def sample(R, points):
idx = select_point()

x, y = sample_point(R)

return (x + points[idx][0], y + points[idx][1])

R = 1.0
points = [(7.1, 3.3), (4.8, -1.4)]

random.seed(12345)

xx = []
yy = []
cc = []

xx.append(points[0][0])
xx.append(points[1][0])

yy.append(points[0][1])
yy.append(points[1][1])

cc.append(0.8)
cc.append(0.8)

for k in range(0, 50):
x, y = sample(R, points)
xx.append(x)
yy.append(y)
cc.append(0.3)

plt.scatter(xx, yy, c=cc)
plt.show()

图片

enter image description here

关于python - 添加随机加权点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47265844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com