首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算偏移旋转以使齿轮正确啮合?

计算偏移旋转以使齿轮正确啮合?
EN

Stack Overflow用户
提问于 2012-11-19 15:13:00
回答 2查看 2K关注 0票数 3

对于每个Gear,我有以下属性:

  • 半径:齿轮中心与边缘之间的长度。
  • OffsetAngle :这个齿轮与母齿轮的角度。当没有父母的时候。
  • CenterX :齿轮的中心。
  • CenterY :齿轮的中心。
  • NumberOfTeeth :这个齿轮的总齿数。
  • ToothInterval :将每颗牙齿分开的角度。
  • 父级:包含该齿轮连接到的齿轮的上述所有属性。

我需要计算每一个齿轮的正确的偏移旋转,以使牙齿正确排列。请参阅附件中的图像以获得视觉指南。旋转将需要参考父母的旋转,当没有父母(在图片中间的32齿齿轮)旋转是0。

我不能为我的一生想出一个公式来解决这个问题--任何帮助都是非常感激的。

解决方案:

代码语言:javascript
复制
this.rotation  = function() { 
    if (this.parent) {
        return -this.parent.rotation()*this.ratio() + this.toothsize()/2;
    } else { return gearRot; }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-19 17:16:07

将每个齿轮标记为“偶数”或“奇数”。限制您的齿轮,使任何齿轮都不能连接到一个具有相同的标签。也就是说,除了“奇数”齿轮之外,“偶数”齿轮不能与任何齿轮连接,而“奇数”齿轮只能与“偶数”齿轮连接。这将对应于数据结构中齿轮深度的奇偶性,这也将有助于确定齿轮相对于彼此的实际转动方向。

将所有“奇数”齿轮旋转一个周期的1/2。所以如果你有32颗牙齿,每个周期是2π/32 =π/16弧度,那么加上2π/64 =π/32弧度的旋转因子。

票数 2
EN

Stack Overflow用户

发布于 2013-06-29 15:21:02

您提供的公式,作为解决方案,只适用于齿轮位置,其中两个连接齿轮的齿轮旋转0是完全对齐的情况下,在你的形象。对于任意位置,还需要计算两个中心之间的角度,并按该值旋转一个齿轮,最后,如@和并指出,如果旋转齿轮有奇数齿,则为“半齿”。不久前,我写了一个类似的设备演示:

JavaScript齿轮

查看源代码中的GearView.setPos()。改变齿数与?,“,”或鼠标轮。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13456603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档