Math
Math
jjinglover
这个作者很懒,什么都没留下…
展开
-
正六边形:以指定位置为原点平铺
在正六边形:平铺一文中,平铺是以左下角为中心进行平铺,项目需要以指定点为中心进行平铺,因此对平铺逻辑做了调整,在此记录下,以备后查。核心代码如下:#ifndef __TKHexagonGrid__#define __TKHexagonGrid__#include <vector>const double cubeSideLen = 50;const double mathSqrt3 = 1.732051;const double cubeSideLen_X_mathS原创 2021-07-05 15:47:04 · 496 阅读 · 0 评论 -
判断点是否在一个矩形内
转自:https://www.cnblogs.com/fangsmile/p/9306510.html判断点是否在矩形内:只需要判断该点是否在上下两条边和左右两条边之间就行。判断一个点是否在两条线段之间夹着就转化成,判断一个点是否在某条线段的一边上,就可以利用叉乘的方向性,来判断夹角是否超过了180度 如下图只要判断(AB X AE ) * (CDX CE) >= 0 就说明E在AD和BC中间夹着,同理(DA X DE ) * (BC X BE) >= 0计算另两边AB,C.转载 2021-06-30 11:20:01 · 2014 阅读 · 0 评论 -
向量叉乘的右手螺旋定则
转自:https://www.cnblogs.com/FWFC/p/9026082.htmlaXb:右手大拇指指向a正向,食指指向b正向,让中指与大拇指食指所在平面垂直,中指所指方向就是aXb的方向。转载 2021-06-30 11:12:27 · 8262 阅读 · 0 评论 -
正六边形:网格间的移动路径消耗
在六边形网格地图中,单位选择攻击目标不符合预期,经过查找是网格间路径消耗计算有误,修复之后功能正常。改动之前:int GridHelper::getTwoGridDistance(const double& startPosX, const double& startPosY, const double& endPosX, const double& endPosY){ Grid startGrid = GridHelper::getGridByPos(star原创 2021-05-20 16:08:07 · 213 阅读 · 0 评论 -
正六边形:判断点是否在正六边形内
前文正六边形:平铺中函数//根据坐标计算网格信息Vec2 HelloWorld::getGridByPos(const Vec2& pos){ int girdX = pos.x/ (1.5 * sideLen)+0.5; int girdY = 0; if (girdX % 2 == 0) { girdY = pos.y / (sideLen * sqrt3) + 0.5; } else { girdY = pos.y / (sideLen * sqrt3) +..原创 2021-04-24 15:29:03 · 1477 阅读 · 0 评论 -
正六边形:寻路优化
参考文档:https://www.redblobgames.com/grids/hexagons/处理正六边形网格数据:const double sqrt3 = 1.732051;const int sideLen = 50;const int rowGridNum = 14;const int colGridNum = 16;void HelloWorld::addSixSideGrid(){ char buff[32] = { 0 }; std::vector<AStar原创 2021-04-12 14:35:47 · 518 阅读 · 0 评论 -
正六边形:寻路
上一篇:正六边形:平铺寻路使用的A*寻路,相关代码如下:处理正六边形网格数据:const double sqrt3 = 1.732051;const int sideLen = 50;const int rowGridNum = 14;const int colGridNum = 8;void HelloWorld::addSixSideGrid(){ char buff[32] = { 0 }; std::vector<AStar::MapData> child原创 2021-04-12 13:27:16 · 951 阅读 · 0 评论 -
正六边形:平铺
项目需要,最近学习下正六边形相关的知识,做个记录。正六边形平铺代码如下:const double sqrt3 = 1.732051;const int sideLen = 50;const int rowGridNum = 14;const int colGridNum = 8;void HelloWorld::addSixSideGrid(){ char buff[32] = { 0 }; for (int i = 0; i <= rowGridNum; i++) {原创 2021-04-12 13:14:07 · 969 阅读 · 0 评论 -
匀速贝塞尔曲线运动的实现
转自:https://www.iteye.com/blog/as3-865587二次贝塞尔曲线通常以如下方式构建,给定二维平面上的固定点P0,P1,P2,用B(t)表示该条曲线用一个动画来演示,可以更加清楚的表明这条曲线的构建过程如果t变量本身线形变化的话,这条贝塞尔曲线本身的生成过程是并不是匀速的,通常都是两头快中间慢。如何想要得到匀速的贝塞尔曲线运动呢?比如我们在某款游戏中设...转载 2019-09-11 19:37:43 · 4494 阅读 · 4 评论 -
贝塞尔曲线扫盲
转自:http://www.html-js.com/article/1628相信很多同学都知道“贝塞尔曲线”这个词,我们在很多地方都能经常看到。但是,可能并不是每位同学都清楚地知道,到底什么是“贝塞尔曲线”,又是什么特点让它有这么高的知名度。贝塞尔曲线的数学基础是早在 1912 年就广为人知的伯恩斯坦多项式。但直到 1959 年,当时就职于雪铁龙的法国数学家 Paul de转载 2017-09-22 00:28:12 · 189 阅读 · 0 评论