小编Ben*_*son的帖子

计算旋转矩形的顶点

嘿伙计们,我正在尝试计算旋转矩形的顶点(2D).

如果矩形没有旋转,这很容易,我认为那部分出来了.

如果矩形已旋转,我想到了两种可能的方法来计算顶点.1)弄清楚如何将顶点从局部/对象/模型空间(我在下面看到的那些)转换为世界空间.老实说,我没有任何线索,如果这是最好的方式,那么如果我能弄清楚的话,我觉得我会从中学到很多东西......

2)使用trig以某种方式确定矩形的端点相对于世界空间中矩形的位置的位置.这是我一直试图做的方式,直到现在,我还没弄明白怎么做.

这是迄今为止计算顶点的函数,感谢您的帮助

void Rect::calculateVertices()
{
    if(m_orientation == 0) // if no rotation
    {
        setVertices(
        &Vertex( (m_position.x - (m_width / 2) * m_scaleX), (m_position.y + (m_height / 2) * m_scaleY), m_position.z), 
        &Vertex( (m_position.x + (m_width / 2) * m_scaleX), (m_position.y + (m_height / 2) * m_scaleY), m_position.z),
        &Vertex( (m_position.x + (m_width / 2) * m_scaleX), (m_position.y - (m_height / 2) * m_scaleY), m_position.z),
        &Vertex( (m_position.x - (m_width / 2) * m_scaleX), (m_position.y - (m_height / 2) * m_scaleY), …
Run Code Online (Sandbox Code Playgroud)

c++ math trigonometry matrix rectangles

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

在c ++中分配和释放char*

嘿大家,我得到一堆腐败错误,我无法弄清楚.

char * c = (char *) malloc(1);
// main loop
_gcvt_s(c, 100, ball->get_X_Direction(), 10);
      if(pushFont(c, (SCREEN_WIDTH - 30), (SCREEN_HEIGHT - 40), message, screen,
font, textColor) == false)
      {
           //return 1; // error rendering text.
      }
// end main loop
free(c);
Run Code Online (Sandbox Code Playgroud)

上面的代码是我在_gcvt_s和pushFont()中使用c指针的唯一时间,它只接受char*作为其第一个参数,并将文本放在屏幕上.除此之外,我不使用c.当我尝试在主循环之后释放c(我认为我应该这样做)时,我得到一个错误,说Visual Studio已经获得了堆的错误(堆损坏).

注释掉对pushFont的调用我仍然收到错误.

任何人都可以向我解释为什么释放一个字符(我在堆上分配的1个字节)会给我一个堆损坏?

最后我的主循环做了很多东西,一个伙伴和我正在用WinSocket做一个乒乓球游戏,主体的其余部分是游戏的循环.我不认为有必要发帖,但如果有必要,我会用整个主循环更新我的帖子,但我相信我对malloc()和free()的理解是对的.

谢谢大家,

c++ heap malloc free

0
推荐指数
1
解决办法
2013
查看次数

标签 统计

c++ ×2

free ×1

heap ×1

malloc ×1

math ×1

matrix ×1

rectangles ×1

trigonometry ×1