小编Bro*_*ier的帖子

角度不正确,计算错误的一面

我需要计算3点之间的角度.为此,我执行以下操作:

  1. 抓住3个点(之前,当前和下一个,它在一个循环内)
  2. 用毕达哥拉斯计算点之间的距离
  3. 使用计算角度 Math.acos

对于没有超过180度角度的形状,这似乎工作正常,但是如果形状有这样的角,则计算短边.这是一个说明我的意思(红色值是错误的):

用于说明计算出错的方法

这是进行计算的代码:

// Pythagoras for calculating distance between two points (2D)
pointDistance = function (p1x, p1y, p2x, p2y) {
    return Math.sqrt((p1x - p2x)*(p1x - p2x) + (p1y - p2y)*(p1y - p2y));
};

// Get the distance between the previous, current and next points
// vprev, vcur and vnext are objects that look like this:
//     { x:float, y:float, z:float }
lcn = pointDistance(vcur.x, vcur.z, vnext.x, vnext.z);
lnp = pointDistance(vnext.x, vnext.z, vprev.x, vprev.z);
lpc = pointDistance(vprev.x, …
Run Code Online (Sandbox Code Playgroud)

javascript math angle

7
推荐指数
1
解决办法
352
查看次数

纯虚拟朋友类

我有一个类A,它有一个指向纯虚拟类的实例的指针B.类C派生自B并将自动具有指向A(其父级)的指针,并且需要访问其成员.这可以通过添加friend class C内部类来实现A,尽管这对于将派生的每个类都是必需的B.

代码示例:

class A
{
public:
    friend class B; // This does not allow derived classes to be friends
    friend class C; // Now derived class B has access to `DoDomething`, but then this is needed for every single derived class

private:
    void DoDomething();
};


class B
{
    virtual void Tick() = 0;

protected:
    A* m_pointerToA; // <- is being set upon …
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism friend pure-virtual

4
推荐指数
1
解决办法
470
查看次数

使用jQuery getJSON"无效标签"Firebug错误

我正在$.getJSON向另一个域发出jQuery 请求,所以我确保我的GET URI以"callback =?"结尾 (即使用JSONP).

Firebug的NET面板显示我正在按预期接收数据,但由于某种原因,控制台面板记录以下错误:"无效标签".

JSON使用JSONLint进行验证,因此我怀疑数据结构是否存在任何真正的错误.

我可能会收到此错误的任何想法?

javascript validation jquery firebug jsonp

2
推荐指数
1
解决办法
2万
查看次数

内存释放冻结了我的程序

这不是一个问题,只是一个我想要回答的问题。

我正在制作带有粒子的 2D 应用程序。在点击处理程序中我编写了以下代码:

Particle *tempp = new Particle();
tempp->setPosition(mx, my);
particles.push_back(tempp); // typeof particles = std::list<Particle*>
delete tempp; // <- this line is the problem
Run Code Online (Sandbox Code Playgroud)

当我单击时,将在鼠标位置创建一个粒子。大约一秒钟后它就会消失,效果很好。它消失后,我可以再次单击以创建一个新粒子。

然而,当我在屏幕上仍然有一个粒子时单击时,我的程序冻结并停止工作。

我的类的析构函数Particle和它的父类的析构函数都是空的。

无需调用,delete我的程序就可以正常运行,即使一次有多个粒子,甚至每帧有多个粒子。我只是想知道是什么导致了这个冻结问题。

c++ pointers memory-management

2
推荐指数
1
解决办法
1739
查看次数