圆形和五边形碰撞检测

问题描述 投票:0回答:1

我目前有两个物体,一个是五边形,一个是圆形。我想检查他们是否在接触,如果是,我希望他们做点什么。

我有我的圆函数,我可以在其中指定中心、高度和宽度(这样我就可以根据需要绘制一个椭圆形) 和我的五边形,我传入 5 个点,它会填满它,所以它是一个五边形

我最初在想,如果我找出这两个区域并以某种方式对它做点什么,但我似乎无法完全理解它

有什么建议吗?

下面是我的圆圈和五边形的制作方法

Polygon(m_iCurrentScreenX, m_iCurrentScreenY - (m_iDrawHeight*2),
            m_iCurrentScreenX + m_iDrawWidth, m_iCurrentScreenY - (m_iDrawHeight),
            m_iCurrentScreenX + (m_iDrawWidth / 2), m_iCurrentScreenY + (m_iDrawHeight/2),
            m_iCurrentScreenX - (m_iDrawWidth / 2), m_iCurrentScreenY + (m_iDrawHeight/2),
            m_iCurrentScreenX - m_iDrawWidth, m_iCurrentScreenY - (m_iDrawHeight))

第一组坐标是顶部,第二个和最后一个是左右,中间两个是底部最后两个点

Oval(
        m_iCurrentScreenX, m_iCurrentScreenY,
        m_iCurrentScreenX + m_iDrawWidth - 1,
        m_iCurrentScreenY + m_iDrawHeight - 1)
c++ collision-detection
1个回答
0
投票

你需要的是圆和凸之间的碰撞检测。

参见,例如:http://www.jeffreythompson.org/collision-detection/poly-circle.php

© www.soinside.com 2019 - 2024. All rights reserved.