C++ 改变形状

C++ 改变形状,c++,objective-c,shape,stretch,C++,Objective C,Shape,Stretch,如何在不改变周长的情况下,通过向不同方向拉伸形状来改变形状?以一根两端相连的绳子为例,它会形成一个类似圆形的形状,如果一侧被推入或拉出,只有形状会改变,但周长和面积会保持不变。我正在努力完成一些与此几乎相同的事情 我不确定我的问题是否非常清楚,如果需要提供更多细节,请让我知道。任何帮助都将不胜感激 即使是在Objtovi-C编写的应用程序中,C、C++或C语言中的代码也会有帮助。 < P>让我们假设你有一个点集,P代表你的对象的凸壳,你的字符串会对它不利。您提供了一个约束,使总周长保持不变,但在

如何在不改变周长的情况下,通过向不同方向拉伸形状来改变形状?以一根两端相连的绳子为例,它会形成一个类似圆形的形状,如果一侧被推入或拉出,只有形状会改变,但周长和面积会保持不变。我正在努力完成一些与此几乎相同的事情

我不确定我的问题是否非常清楚,如果需要提供更多细节,请让我知道。任何帮助都将不胜感激


即使是在Objtovi-C编写的应用程序中,C、C++或C语言中的代码也会有帮助。

< P>让我们假设你有一个点集,P代表你的对象的凸壳,你的字符串会对它不利。您提供了一个约束,使总周长保持不变,但在不提供更多信息的情况下,有多种方法可以根据单个约束重新排列这些点

以一个三角形为例,如果我将一个点拉离三角形的质心,那么其他两个顶点是应该移近一点,还是应该移近一点


我建议研究基于弹簧的粒子,这是在视频游戏中模拟布料和绳子的方式。

这看起来更像是一个数学/几何问题,所以你最好问一下。-保护周长和面积可能是困难或不可能的。是的,我认为你是对的。不应要求保留区域/周长。谢谢你的评论好吧,让我们假设我有一个点的集合,使一个不规则图像的边界。我想调整边框的大小(用手指在iPad上)。这和我在桌子上放一根圆绳子,用手指改变它的形状一样。我已经实现了一个算法来检测手指何时接触边界现在我需要一个算法来拖动边界上的接触点并改变边界的形状我理解你的问题,但我认为你不理解我的回答。您的问题有多种解决方案。如果点的集合定义了一个周长为3的等边三角形,并将1点拉离中心。一种解决方案是约束该顶点与其他2个顶点之间的距离以及这些边创建的角度。这将简单地将这两个点与第一个点一起拖动。这不是您想要的。另一种解决方案是约束距离,而不是角度。当你拉出点时,其他两个顶点会移动得更近(它们之间的边会收缩),以说明其他两条边的长度增加了。正如我在我的原始帖子中所说,你应该看的是一个基于弹簧的粒子系统,比如这里描述的粒子系统。你不需要担心重力,但是你需要使用胡克定律来解决系统的张力,最好是通过多次迭代。我会查看那篇文章,看看它是否对我的问题有帮助。谢谢你的评论