matlab python 在指定范围的圆内随机生成点

需求:
在半径为300和半径为50的同心圆的未相交部分随机生成N个点(黑色部分)

在这里插入图片描述


function [] = pos_generate(N, R, r, filename, seed)
% R=300; r=50; 
% N: 生成N个点, filename: 保存文件
% seed:随机种子
rng(seed);
P=r+(R-r)*sqrt(rand(N, 1)); 
t=2*pi*rand(N, 1);
px=P.*cos(t); 
py=P.*sin(t);
save(filename, 'px', 'py');
end
import numpy as np
import math
R = 300
r = 50
N = 20
x = np.random.rand(N)
t = 2 * math.pi * np.random.randn(N)
P = r + (R-r)*np.sqrt(x)
px = P * np.cos(t)
py = P * np.sin(t)


#for x,y in zip(px, py):
#    dist = np.sqrt(x*x+y*y)
#    if 50<=dist<=300:
#        pass
#    else:
#        print("error")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值