魔塔c语言源代码中的结构体,poll()函数的运用 - 用poly2tri库回完成任意多边形...- 魔塔教程源代码有关问题_169IT.COM...

这篇博客介绍了如何利用poly2tri库将任意多边形进行三角化,以便在游戏中创建刚体和渲染图像。通过CDT类进行三角剖分,然后获取三角形并创建b2BodyDef对象,设置密度和恢复系数,最终将三角形转换为物理世界中的动态实体。同时,提供了开源库的下载链接。
摘要由CSDN通过智能技术生成

用poly2tri库来完成任意多边形三角化,从而在游戏中转化成刚体和渲染图片

b2BodyDef TriangleBodyDef;

TriangleBodyDef.type = b2_dynamicBody;

TriangleBodyDef.position.Set(0,0);

b2Body *Triangle = world->CreateBody(&TriangleBodyDef);

b2FixtureDef sd2;

sd2.density = 2.0f;

sd2.restitution = 0.2;

p2t::CDT cdt(polyes);

cdt.Triaresultingngulate();

//get the triangles

vector<:triangle> tris = cdt.GetTriangles();

for (size_t t = 0; t < tris.size(); t++) {

p2t::Triangle* tri = tris[t];

b2Vec2 vertices[3];

b2PolygonShape TriangleShapeDef;

for (int i = 0; i < 3; i++) {

vertices[i].x = tri->GetPoint(i)->x/PTM_RATIO;

vertices[i].y = tri->GetPoint(i)->y/PTM_RATIO;

}

TriangleShapeDef.Set(vertices, 3);

sd2.shape = &TriangleShapeDef;

Triangle->CreateFixture(&sd2);

}

Triangle->SetUserData(filledPolygon);

开源库下载地址:https://code.google.com/p/poly2tri/

vector<:point> HelloWorld::tools_toPoint(vector temp)

{

vector<:point> p2tPoints;

for (int i = 0; i < temp.size(); i++)

{

p2tPoints.push_back(new p2t::Point(temp[i].x, temp[i].y));

}

return p2tPoints;

}

vector<:point> HelloWorld::tools_toPoint(vector temp)

{

vector<:point> p2tPoints;

for (int i = 0; i < temp.size(); i++)

{

p2tPoints.push_back(new p2t::Point(temp[i].x, temp[i].y));

}

return p2tPoints;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值