是否有可能制作一些精灵/物体来复制自己并弯曲成曲线?
我做了一个图像来表明我的意思:
我做了一个图像来表明我的意思:
这里的曲线,可能是贝塞尔曲线路径为绿色,几何曲线显示为黑色.我希望精灵或对象(在左侧)复制自身并将其顶点与最后一个副本合并,而最后两个顶点跟随曲线.
如果是的话,该怎么做?有关于这样的事情的文件吗?你做过这样的事吗?怎么样?
编辑:我不希望精灵或对象在路径中移动,但有点复制本身并将其自身与其副本合并.
解决方法
是的,您想要做的事情可以发挥作用,您的绘图展示了它的运作方式.伪代码看起来像这样:
curveLength = <length of entire curve>; tileLength = <length of 1 tile>; currentLength = 0; while (currentLength < curveLength) { currentTileLength = 0; startPt = prevPt = calculateBezierAt(0.0); for (t = delta; (t < 1) && (currentTileLength < tileLength); t += delta) // delta is up to you. I often use 1/100th { nextPt = calculateBezierAt(t); distance = distanceBetween(prevPt,nextPt); currentTileLength += distance; currentLength += distance; prevPt = nextPt; } endPt = prevPt; // Calculate quad here }
要计算每个四边形,您需要在起点和终点生成垂线.然后你的四边形有4个点.
请注意,我假设只有一个bezier,我简化了一些事情.通常,你会将它们中的许多连接在一起,所以迭代它们比我上面说的要复杂一点,但它不应该太难.
另请注意,如果您有非常紧凑的角落或者如果曲线自行循环,您可能会得到看起来很糟糕的结果.如果你自己产生曲线,大概你会避免这种情况.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。