Python随机生成均匀分布在三角形内或者任意多边形内的点
Python有一随机函数可以产生[0,1)区间内的随机数,基于此函数生成随机分布在任意三角形内的点
由数学知识得知:
几何体的向量表达形式
直线:
线段:
推广到高维
三维平面:
三角形:
注释,v这个向量表示的是在图形上的点的坐标,根据数学知识得知,直线和三维平面内的v构成的点集是放射集,而线段则是凸集, 其余向量是不在同一个点或者同一个平面的点的坐标构成的列向量
那么针对三角形可以写成如下:
我们可以先生成随机的贝塔,然后随机生成阿尔法,然后处理阿尔法,使得点是随机落在三角形内的,这里用的是开始生成的随机数的算术平方根作为阿尔法数值,关于为什么这样可以参考
Python随机生成均匀分布在单位圆内的点
现附代码如下:
import numpy as np
import matplotlib.pyplot as plt
if __name__ == '__main__':
x1, y1 = 0, 30
x3, y3 = 200, -10
x2, y2 = 100, 200
sample_size = 500
theta = np.arange(0,1,0.001)
x = theta * x1 + (1 - theta) * x2
y = theta * y1 + (1 - theta) * y2
plt.plot(x,y,'g--',linewidth=2)
x = theta * x1 + (1 - theta) * x3
y = theta * y1 + (1 - theta) * y3
plt.plot(x, y, 'g--', linewidth=2)
x = theta * x2 + (1 - theta) * x3
y = theta * y2 + (1 - theta) * y3
plt.plot(x, y, 'g--', linewidth=2)
rnd1 = np.random.random(size = sample_size)
rnd2 = np.random.random(size=sample_size)
rnd2 = np.sqrt(rnd2)
x = rnd2 * (rnd1 * x1 + (1 - rnd1) * x2) + (1 - rnd2) * x3
y = rnd2 * (rnd1 * y1 + (1 - rnd1) * y2) + (1 - rnd2) * y3
plt.plot(x,y,'ro')
plt.grid(True)
# plt.savefig('demo.png')
plt.show()
生成图:
作为推广,其实多个多边形也是可以这样生成的,只需要分割为多个三角形,根据三角形面积比例,控制样本比例即可。
以上就是本文的全部内容,希望对大家的学习有所帮助
数据分析咨询请扫描二维码
在当今信息爆炸的时代,数据分析技能变得至关重要。无论你是业务人员、学者还是从事科研工作,掌握数据分析能力都能让你在竞争激 ...
2024-12-04在当今信息爆炸的时代,数据被认为是企业的黄金。然而,仅有大量数据并不足以推动业务成功,关键在于有效地管理和利用这些数据。 ...
2024-12-04欢迎来到数据分析的世界!作为一位初学者,您可能会陷入混乱之中,试图理清诸多概念和工具。本指南将带领您穿越这片知识海洋,探 ...
2024-12-04随着数据在商业和科学领域的广泛应用,数据分析师的需求日益增长。对于初学者而言,打造实战能力至关重要。让我们探索如何通过系 ...
2024-12-04编程与数据分析结合的课程 有一定编程基础的学习者可以选择中国大学MOOC的"Python数据分析与展示"和飞桨AI Studio的"Python数 ...
2024-12-04在当今信息爆炸的时代,数据扮演着至关重要的角色。掌握数据分析技能不仅是一种趋势,更是保持竞争优势的关键。为了帮助您拓展数 ...
2024-12-04探索数据分析的学习路径 数据分析不仅仅是一门技能,更是一种思维方式,让我们一起探索如何从一个初学者逐步成长为数据分析领域 ...
2024-12-04城市需求概况 数据分析师在不同城市间的需求差异显著,主要聚焦于一线及部分新一线城市。以下是详细的分析: 主要需求城市: ...
2024-12-04培养数据感知能力与深刻理解 数据分析师的关键能力之一是培养敏锐的数据感知能力。通过持续的数据探索和可视化分析,我们不仅可 ...
2024-12-04作为一名数据分析师,熟练掌握各种数据库课程对于提升竞争力和专业能力至关重要。本文将深入探讨数据分析师需要学习的主要数据库 ...
2024-12-04在当今数据驱动的世界中,数据分析师扮演着关键角色。他们需要熟练掌握各种工具,以有效处理和分析数据,为业务决策提供支持。让 ...
2024-12-04在当今数据驱动的世界中,数据分析师扮演着至关重要的角色。他们需要不断提升自身技能以适应快速发展的数据科学领域。本文将探讨 ...
2024-12-04在当今数据驱动的世界中,数据分析已成为各行各业的核心。要成为一名优秀的数据分析师,熟练掌握多种编程语言至关重要。不同的编 ...
2024-12-04在当今信息爆炸的时代,数据分析师扮演着关键的角色,他们需要运用多种数据处理技术来从海量数据中提炼出有意义的见解。本文将探 ...
2024-12-04数据分析师薪资概况 数据分析师的薪资水平受地区、行业和经验等因素影响,呈现明显差异。总体来看,数据分析师在薪资待遇上较为 ...
2024-12-04数据分析领域日益受到关注,数据驱动决策已成为企业核心。随着数据需求增长,数据分析师的地位也日益重要。成功在这个领域立足, ...
2024-12-04掌握核心技能 数据分析基石涵盖统计学、数据库管理(如SQL)、编程语言(例如Python或R)以及数据可视化工具(如Tableau和Power ...
2024-12-04在当今数字化时代,数据分析已经成为各行业中至关重要的技能之一。无论是帮助企业做出更明智的决策,还是探索新的商业机会,精通 ...
2024-12-04在当今信息爆炸的时代,数据分析师扮演着关键角色。他们不仅需要广泛的技能,还必须不断学习以跟上行业发展步伐。成为一名优秀的 ...
2024-12-04数据分析师的技能要求 作为一名数据分析师,你需要面对广泛的技能要求和学习挑战。让我们一起探讨成为一名优秀数据分析师所需的 ...
2024-12-04