当前位置: 首页 > 编程笔记 >

ActionScript 3 圆内的随机点

范峰
2023-03-14
本文向大家介绍ActionScript 3 圆内的随机点,包括了ActionScript 3 圆内的随机点的使用技巧和注意事项,需要的朋友参考一下

示例

首先定义圆的半径及其中心:

var radius:Number = 100;
var center:Point = new Point(35, 70);

然后从中心生成一个以弧度为单位的随机角度:

var angle:Number = Math.random() *Math.PI* 2;

然后生成返回点的有效半径,因此它将位于给定的范围内radius。一个简单的方法是不行的,因为通过这种分布,生产点将在一半时间的一半半径的内圆中终止,但是该圆的平方是原始圆的四分之一。要创建适当的分布,函数应如下所示:Math.random()*radius

var rad:Number=(Math.random()+Math.random())*radius; // 是的,两个单独的随机调用
if (rad>radius) { rad=2*radius-rad; }

此函数产生一个值,该值的概率函数从零的0线性增加到的最大值radius。发生这种情况是因为随机值的总和具有等于所有随机值的各个密度函数的卷积的概率密度函数。对于普通年级的人来说,这是一些扩展的数学,但是提供了一种GIF来绘制两个统一分布密度函数的卷积函数图,这些函数被解释为“盒信号”。的if操作者折叠在其最大值所得的函数,只留下一个锯齿形图形。

选择此函数的原因是,位于radius=r和之间的圆带的平方radius=r+dr随着线性增加r和很小的常数而线性增加,dr因此dr*dr<<r。因此,在中心附近产生的点的数量比在圆的边缘处产生的点的数量小,与中心区域的半径小于整个圆的半径相同。因此,总的来说,点在整个圆上均匀分布。

现在,获得您的随机位置:

var result:Point = new Point(
   center.x+ Math.cos(angle) * rad,
   center.y+ Math.sin(angle) * rad
);

要在圆上获得随机点(在给定半径的圆的边缘上),请使用radius代替rad。

PS:该示例最终由于对数学的解释而变得繁重。

 类似资料:
  • 问题内容: 我正在创建一个应用程序,该应用程序在gridPane的每个单元格内随机显示(不同颜色的)圆圈。 我想要做的是创建一个“随机播放”按钮,以随机更改gridPane中每个圆的位置。但是,我一直遇到很多问题。 这是我到目前为止所拥有的。我的两个类(尚未添加XML文件): 控制器类 主班 问题答案: 这是一个示例,演示了如何在。如果添加了一个,你可以删除从。然后,您可以随机播放。最后,您可以将

  • 我一直在做一个学校作业,老师想让我们在JPanel上出现7个圆圈,然后向下移动。一旦一个圆到达底部,就应该创建一个新的圆来替换到达JPanel底部的圆。我决定用一个数组继续做随机圈,但我不能让它正常工作。我使用for循环用半径和颜色随机的圆填充数组。代码可以编译,但当我运行它时,我得到一个异常。我很难让阵列正常工作。我不确定的另一件事是如何绘制圆圈,以便它们在JPanel中有空间。

  • 我试图用Kotlin构建一个使用Kotlin的简单应用程序。随机的GraalVM本机映像上的随机类。但这在运行时失败。见下文。 作为解决方法,您可以使用java标准java.util.Random类。 有人能告诉我怎么用Kotlin型吗? 应用程序。kt 文档 运行时错误 这里是最小的工作示例项目

  • aliyun 的 redis lua 的随机值不随机!? 同样的函数,在 redis 官方的 7.2.1 下面是每次都可以取到随机的 cookie 但是在 aliyun 的 redis 下面,每次取到的值都是一样的

  • 我想看看哪个随机数生成器包在我的神经网络中更快。 我目前正在更改github的一个代码,其中两个都是numpy。随机和随机包用于生成随机整数、随机选择、随机样本等。 我之所以更改此代码,是因为出于研究目的,我希望设置一个全局种子,以便能够比较超参数不同设置的精度性能。问题是,现在我必须为随机包和numpy包设置两个全局种子。理想情况下,我只想设置一个种子,因为来自两个随机数生成器序列的图形可能会更

  • 问题内容: 当他每次运行程序时都不断获得相同的数字时,我试图向Java解释随机数生成器。我为同一件事创建了自己的简单版本,每次运行该程序时,我也得到了与他得到的确切数字相同的数字。 我究竟做错了什么? 100个数字中的最后五个数字是: 问题答案: 您已经为随机数生成器提供了恒定的值。它是确定性的,因此每次运行都会生成相同的值。 我不确定您为什么选择使用作为种子,但是种子值与生成的值范围无关(这是由

  • 一个简单的新手问题,奇怪的是我一直没能找到解决方法。

  • 问题内容: 有没有什么方法可以模拟Collections.shuffle的行为,而比较器不容易受到排序算法实现的影响,从而确保结果安全? 我的意思是不违反可比合同等。 问题答案: 不打破合同就不可能实现真正的“改组比较器”。合同的一个基本方面是,结果是可 重现的, 因此必须确定特定实例的顺序。 当然,您可以使用混洗操作预先初始化该固定顺序,并创建一个比较器来精确地建立此顺序。例如 虽然没有意义。显