Articles of math

旋转精灵180度

我应该先说,我已经轮stream了。 它只是我想我的广场旋转180度。 目前,它会旋转,但它会旋转,但减less每跳。 所以经过几次跳跃之后,它将会在其一侧移动。 没有太多的代码显示,但我会告诉你我是如何旋转: if (jumped) { roation += 0.1f; playerVel.Y += gravity; } 我还没有初始化任何东西的旋转。 我也尝试使用一些math函数,但我只是得到相同的结果。

采用旋转视图matrix的挑选问题

如果我的视图matrix没有旋转(只有翻译),我select的代码工作。 现在,如果我旋转我的相机,采摘会下地狱。 我不能find什么是错的 我的代码: /*———————————————————– Function: GetViewportSystem Returns: viewportCoordSystem Get viewport coordinate system (only for reading) Forward ray goes through origin d = distance |camera, projection plane| cameraPos = position of camera in World Space lookAt = camera target in World Space ————————————————————-*/ ViewportCoordSystem Camera::GetViewportSystem() const { ViewportCoordSystem viewportCoord; viewportCoord.w = this->cameraPos; viewportCoord.w = this->cameraPos […]

围绕屏幕中心旋转

我想我的相机围绕屏幕中心旋转,我不知道如何实现这一点。 我在相机中有一个旋转,但我不知道它在旋转。 (我认为这可能是相机的位置旋转,不知道)如果你看看这两个图像: http : //imgur.com/E9qoAM7,5qzyhGD#0 http://imgur.com/E9qoAM7,5qzyhGD#1 第一个显示摄像机是如何正常的,第二个显示当我将摄像机向左或向右旋转90度时,我想如何看电平。 我的照相机: public class Camera { private Matrix transform; public Matrix Transform { get { return transform; } } private Vector2 position; public Vector2 Position { get { return position; } set { position = value; } } private float rotation; public float Rotation { get { return […]

vector问题的解释

我正在模拟一个蜈蚣游戏,我正在做蛇的运动。 我已经看到了这段代码,但不能得到它,我知道它获得了当前,以前的节点位置之间的不同,但是与法向vector相乘的点是多less呢? for ( int i = 1 ; i < nodes.size(); i++ ) { Vec2f diff = nodes[i-1].m_Pos-nodes[i].m_Pos; float length = diff.length(); Vec2f norm = diff.normalized(); nodes[i].m_Pos+=(length – 5)*norm; }

缩放绘制函数的algorithm

我在android中做游戏,我需要绘制一个函数,我的algorithm是这样的: @Override protected void onDraw(Canvas canvas) { float e = 0.5f; //from -x axis to +x evaluate f(x) for (float x = -z(canvas.getWidth()); x < z(canvas.getWidth()); x+=e) { float x1,y1; x1 = x; y1 = f(x); canvas.drawPoint((canvas.getWidth()/2)+x1, (canvas.getHeight()/2)-y1, paintWhite); } super.onDraw(canvas); } 这是如何工作的。 如果我的函数是,例如f(x)= x ^ 2,那么z(x)是sqrt(x)。 我评估-z(x)到z(x)之间的每个点,然后绘制它们。 正如你所看到的,我使用屏幕大小的一半将function放在屏幕中间。 问题不是代码不工作,实际上是绘制函数。 但是,如果屏幕是320 * 480那么这个function将会像下面的图片一样非常小。 我的问题是:如何改变这个algorithm来缩放函数? 顺便说一句,我真正想要做的是追踪一个路线,以后显示一个animation精灵,所以实际上缩放这个图像不会帮助我。 […]

gpu上的浮点内存使用情况

我的问题很简单:一个浮点值需要多less内存? 我想这是4个字节,但我不确定。 所以例如vec4,其中包含4个浮点数,每个4个字节总共需要16个字节。 我知道这是非常基本的,也许我错过了一些观点。 谢谢你的建议。

形状碰撞检查

我想检查一个形状,不管有没有一个点。 该形状用一个浮点vector数组描述。 vector按时钟方向添加。 第一个我可以很容易的检查,第二个也可以,但是第三个更难。 我如何计算这个? 如何在math命名这个类别,以便我可以谷歌?

试图检查一个点是否在线的错误的边缘

通过使用浮点数值,通过比较应该是相同的数量,就像呼吸一样简单地运行近似误差。 我想知道如果有一种方式建立在一些MSDN(或者甚至外部)的库为C#忽略问题。 一个例子可能是:比这样比较2个浮点值 if(myVector3.X == anotherVector3.X) 我会很感激这样的事情 if(myVector3.X.isInTheNeighbourhood(anotherVector3.X)) 我知道这个写得不好。 这只是为了简化说明。 我正在做的是检查一个点( Vector3 )是否在线段上。 所以基本上我做的计算只不过是 (x – x1)/(x2 – x1) = (y – y1)/(y2 – y1) = (z – z1)/(z2 – z1) 但是这些值并不总是相同的,所以我需要写下一些代码,其中包括一种宽容的邻居math概念,以接受足够接近线的值。 希望我明确自己。 有没有人为此提供解决scheme?

如何根据计算用户和玩家的差异x来计算用户exp exp?

如何根据使用这种格式计算用户和玩家之间的差异来计算用户的EXP值? 如果用户比我低60级,我会得到0 exp(因为这只是欺凌)。 如果用户比我小21到59个级别,我会得到1 exp。 如果用户less于20级,我会得到2 exp。 如果用户是相同的水平,他们会得到3 exp,但是如果用户在我的水平,并在20以上我会得到4 exp。 如果他们在21到40之间我会得到5 exp 如果他们是41和60以上的我会得到6 exp 如果他们在我以上的61 +级我会得到7 exp 所以我想要做这样的事情 – 如果我想要做到这一点,它将如何构成(玩家是我,玩家是对手) if( $PLAYER->level is more than 60 of $USERS->level ) { $earn = 0; } elseif( $PLAYER->level is between 21 and 59 more than $USERS->level ) { $earn = 1; } elseif( $PLAYER->level is between 1 […]

你如何考虑放大自上而下的视口?

如果这个问题是坏的,请原谅我。 我有一个通用的自顶向下的RPG结构,我想为它创建一个可缩放的Canvas视口。 我已经阅读了几个教程,我想我一直把它搞乱。 目前的Codepen项目在这里。 项目相关代码: 相机: function Camera(PARENT, CANVAS, SUBJECT, ZOOM) { this.draw = function() { var refs = []; Rect.call(this, SUBJECT.x, SUBJECT.y, CANVAS.width*ZOOM, CANVAS.height*ZOOM, "cen"); for(o in PARENT.objects) { if(this.overlapping(PARENT.objects[o])) refs.push(o); } while(refs.length>=1) { var obj = PARENT.objects[refs.shift()]; if(obj.draw) obj.draw( this.context, //Drawing ctx this.left, //Offset left this.top, //Offset top ZOOM //Scale factor ); } […]