扇形面积

MMORPG大型游戏设计与开发(攻击区域 扇形)

▼魔方 西西 提交于 2020-04-08 13:07:56
距离上次发布已经有了很长一段时间,期间由于各种原因没有更新这方面的技术分享,在这里深表遗憾。在MMO或其他的游戏中,会有针对各种形状的计算,通常在攻击区域里不会很复杂,常见的为矩形、圆形、扇形。今天分享的是判断一个目标点是否在扇形内的计算,用到的是比较简单的运算,高效率的算法我很尽快更新。 数学知识   在这里需要大家回顾一下初中以及高中的代数和平面几何的知识,想必大部分的朋友在这方面和我一样几乎忘记了或是对这些数学知识感觉有些头痛。不过大家没有必要担心,在实际运用中,我们都不会涉及太复杂的计算,因为我们不需要追求的十分精确。    但是在以下内容中,大家需要知道一些基本的定理和公式: 勾股定理、余弦定理。    需要了解弧度和角度的一些转换: 角度 = 弧度 * 180.0 / ∏    一些数学函数: atan2、acos等。    中心线: 以中心线顺、逆时针展开半角,形成一个完整的目标扇形区域。    极坐标概念:   如上图坐标点A的平面坐标为(7.96, 5.43),对应的极坐标为(ρ, θ)    相对坐标的概念:   在扇形的计算中,我们的X轴与Y轴的方向与原点的的X轴和Y轴平行,在上图中,如果以A点作为中心点,那么B的相对坐标为(xb - xa, yb - ya)。 扇形与点的关系   示例图1:    必要的数据: 原点A(攻击者坐标)、方向点B

Hadoop下MapReduce实现Pi值的计算

匿名 (未验证) 提交于 2019-12-02 23:57:01
Hadoop自带的例子中,有一个计算Pi值的例子。 这个程序的原理是这样的。假如有一个边长为1的正方形。以正方形的一个端点为圆心,以1为半径,画一个圆弧,于是在正方形内就有了一个直角扇形。在正方形里随机生成若干的点,则有些点是在扇形内,有些点是在扇形外。正方形的面积是1,扇形的面积是0.25*Pi。设点的数量一共是n,扇形内的点数量是nc,在点足够多足够密集的情况下,会近似有nc/n的比值约等于扇形面积与正方形面积的比值,也就是nc/n= 0.25*Pi/1,即Pi = 4*nc/n。 在正方形内生成的样本点越多,计算Pi值越精确,这样,这个问题就很适合用Hadoop来处理啦。假设要在正方形内生成1000万个点,可以设置10个Map任务,每个Map任务处理100万个点,也可以设置100个Map任务,每个Map任务处理10万个点。 package mapreduce1; /* * @create by 刘大哥 * 2019年9月3日 * 利用MapReduce计算pi值 * */ import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache