沿 sin 曲线均匀分布的空间圆

2024-01-10

我试图沿着正弦曲线均匀地定位精灵(视觉上呈圆形,例如半径为 50)。

目前,我用于 x 和 y 的函数是:

for(int i=0; i<number_of_sprites; i++){
    x = sprite_index*60
    y = sin(sprite_index)*60

    sprite.position = CGPointMake(x, y)
}

尽管精灵都沿 x 轴均匀分布,但彼此之间的距离并不都是等距。

这有点伪代码 - 我只是在寻找数学函数来做到这一点。

我怎么解决这个问题?


根据这个答案 https://math.stackexchange.com/questions/45089/what-is-the-length-of-a-sine-wave-from-0-to-2-pi在 math.stackexchange.com 上,计算沿正弦波的弧长的解决方案是椭圆积分很难进行解析计算。

幸运的是,您有一台计算机可以使用,它可以使用数值积分应用相同的公式来实现近似所需的曲线。

给定导数sin(x) is cos(x),如果你增加你的x变量非常慢(每步增量为dx)然后在每一步你dsdx * sqrt(1 + cos(x)^2)。不断积累ds值,直到达到(或超过)您所需的间距,然后才绘制一个点。

See http://jsfiddle.net/alnitak/fp7aknoc/ http://jsfiddle.net/alnitak/fp7aknoc/进行演示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

沿 sin 曲线均匀分布的空间圆 的相关文章

随机推荐

  • 如何用值 X 替换子字符串 [ ]

    我在 Java 中有如下字符串 String Value You are my star dear 我只想更换 有价值X 下面尝试过 什么都没起作用 ReplaceAll X ReplaceAll X ReplaceAll X 替换方法有3
  • Fortran 错误 5082

    我对 Fortran 很陌生 我正在尝试编译这个 Fortran 我认为是 90 代码 我正在使用带有英特尔编译器的 Visual Studio 下面的代码给我一个错误 5082 我完全不知道为什么 就像字面上没有任何线索 拜托 请帮忙 i
  • 比 supertrait 具有更严格关联类型界限的特征

    我有一个简单的特征 其关联类型没有限制 trait Board type Move fn moves self gt Vec
  • 如何开启icc/icpc警告?

    我在Linux上安装了英特尔编译器composer xe 2013 sp1 3 174 我对国际刑事法院的警告感到困惑 使用简单的程序 main c 馈送 icc 如下所示 int main int argc char argv int a
  • 预计声明结束

    好的 我使用了一个建议运行良好的公式 应该没有问题 但现在我收到此错误 预计声明结束 这是公式 Range B4 FormulaR1C1 IF RC 1 T VLOOKUP RC 7 treatlookup 11 FALSE VLOOKUP
  • 使用 word2vec 的二元组向量表示

    我想使用 word2vec 工具构建文档的词嵌入 我知道如何找到与单个单词 一元组 相对应的向量嵌入 现在 我想找到二元组的向量 是否可以使用 word2vec 构建二元词嵌入 如果是 怎么办 以下代码片段将为您提供二元组的向量表示 请注意
  • 如何使用node-postgres设置模式

    我正在尝试查询名为的模式DOCUMENT在我的 postgres 数据库中使用节点 postgres https www npmjs com package pg 我似乎无法针对指定架构运行查询 该查询使用 psql 直接针对 postgr
  • ClassNotFoundException:org.slf4j.LoggerFactory

    我正在尝试运行 GWT RequestFactory 并遇到此错误 ClassNotFoundException org slf4j LoggerFactory 我已尝试下载slf4j api 1 3 1 jar但它没有解决问题 知道我需要
  • 如何在node.js中验证mongoose连接mongodb

    我已经使用命令创建了 mongodb 用户 use admin db createUser user superuser pwd 12345678 roles root 然后在我的应用程序中我尝试像这样连接猫鼬 var options us
  • C# 中字母的增量

    我正在将数据导出到Excel Using Open XML 现在我想增加字母表 就像columns A1 to B1 Z1 AA1 我已将 A1 分配给变量 并且我想将字母表增加到 B1 请提供任何可以将字母 A1 增加到 B1 Z1 AA
  • System.Net.WebRequest 支持哪些版本的 SSL/TLS?

    现在 SSL 3 已被发现容易受到POODLE http arstechnica com security 2014 10 ssl broken again in poodle attack 攻击 连接到任何 https Uri 时 Sys
  • phpRedis 迁移到集群和一致性哈希

    我们目前正在使用PhpRedis扩展 我们的代码是使用该类编写的Redis来自PhpRedis 但现在我们正在迁移到redis集群 是否可以使用Redis类连接redis集群 或者我们是否需要重新编写代码并使用 RedisArray 类 我
  • 从另一个数组顺序对一个数组进行排序?

    var listOne new string dog cat car apple var listTwo new string car apple 我需要的是按照 listTwo 中的项目顺序 如果存在 对 listOne 进行排序 所以新
  • 使用 matplotlib 箱线图中的传单颜色

    根据文档 https matplotlib org api as gen matplotlib axes Axes boxplot html matplotlib axes Axes boxplot the Axes boxplot函数需要
  • 来自多个工人的 Gunicorn 日志记录

    我有一个 Flask 应用程序 它在服务器上的多个 Gunicorn 同步进程中运行 并使用 TimedRotatingFileHandler 从每个工作人员的 Flask 应用程序内记录到文件 回想起来 这似乎不安全 有没有一种标准方法可
  • 直接在 jQuery 对象上定义实用函数有什么好处吗?

    直接在 jQuery 对象上定义实用程序函数是否有任何具体好处 例如 给定以下两个构造 someUtility function do some something with jQuery var someUtility function
  • InAppPurchase 无效的产品标识符 - 可能的原因

    在我的应用内购买试验中 我花了一个漫长的夜晚来解决这个问题 但我似乎无法解决这个问题 我的产品标识符不断返回为 无效的产品标识符 希望有人指出 使用当前的配置文件和 appId 我可以使用推送通知 我的应用程序 ID 已生成 不带通配符 已
  • 如何从 watchOS 应用程序的共享框架中的资产目录访问颜色?

    我的 iOS 和 watchOS 应用程序之间有一个共享框架 其中包含带有一些命名颜色的资产目录 我想在我的 watchOS 应用程序中访问指定的颜色 在iOS中 我可以使用UIColor init named name String in
  • React - 将 @babel/preset-react (https://git.io/JfeDR) 添加到 Babel 配置的“预设”部分以启用转换

    我想使用反应验证组件Input以我的形式 这就是我导入它并在表单中使用的原因
  • 沿 sin 曲线均匀分布的空间圆

    我试图沿着正弦曲线均匀地定位精灵 视觉上呈圆形 例如半径为 50 目前 我用于 x 和 y 的函数是 for int i 0 i