【发布时间】:2021-06-20 02:35:19
【问题描述】:
我正在编写一个程序,而我目前正在处理的部分必须采用数百个三角形(形成 3D 形状)并存储每个三角形的坐标。例如,一个三角形的坐标为:(x1, y1, z1) (x2, y2, z2) (x3, y3, z3)。 我认为也许以这种方式组织结构将是一个开始(但我对更好的想法持开放态度......!)
struct triangle {
double x1;
double y1;
double z1;
double x2;
double y2;
double z2;
double x3;
double y3;
double z3;
};
本质上,我希望能够存储每个三角形的坐标,然后在程序的另一点我想返回并删除一些三角形并将其他一些三角形添加到“列表”中。 几天来我一直在尝试这样做,任何帮助都将不胜感激 - 这让我发疯......
提前致谢!如果我能更详细地解释任何事情,请告诉我。
【问题讨论】:
-
struct coord { double x, y, z; }; struct triangle { struct coord coords[3]; };? -
这很有帮助——我不太清楚在这种情况下如何实现 malloc。谢谢你:)
-
你应该展示“尝试这样做几天”的(不成功的)结果,并解释你到底遇到了什么问题。如果您使用数组(而不是列表)之类的东西并想要删除数据,则必须处理未使用的数组元素或将所有数据移到已删除元素之后以关闭“洞”。
-
问题是我在过去几个月中学习了 C 并且已经能够编写代码来构建三角形的 STL 文件,但我需要一种更可靠的存储三角形的方法然后将更容易通过添加/删除来编辑列表。我还没有弄清楚 malloc ,特别是如果它涉及一个结构。我试图自己解决问题,但我束手无策,真的需要对我的申请进行解释。非常感谢您的帮助!
-
根据您必须添加/删除的三角形“对象”的频率和数量,以快速有效的方式管理此类处理并非易事。为了不深入,我建议您开始定义基础对象、三角形集,然后使用链表将它们连接起来。链接列表允许从链中轻松添加/删除对象,但不是最快或更有效的方式。无论如何,它可能是调查更有效方法的基础(也许在谷歌的帮助下......)。