Math 螺旋描记器:正确的轮比和笔画长度?

Math 螺旋描记器:正确的轮比和笔画长度?,math,design-patterns,trigonometry,Math,Design Patterns,Trigonometry,在螺旋描记器中,完成一圈所需的滚轮尺寸和笔画长度之间的比率是多少。i、 e带有以下部件的螺旋描记器: 三面=1.5:4pi(轮比:笔长) 4边=1.333:6 5边=2.5:5 a) 为什么1.2/10和6/2都是6面螺旋描记器? a) 比率是多少? c) 如何制作八角形呼吸描记器 function spiro ( N:float,k:int ): Vector3//spirograph loop, N=total points in loop, k=current loop { //w

在螺旋描记器中,完成一圈所需的滚轮尺寸和笔画长度之间的比率是多少。i、 e带有以下部件的螺旋描记器:

三面=1.5:4pi(轮比:笔长)
4边=1.333:6
5边=2.5:5

a) 为什么1.2/10和6/2都是6面螺旋描记器?
a) 比率是多少?
c) 如何制作八角形呼吸描记器

function  spiro (  N:float,k:int ): Vector3//spirograph loop, N=total points in loop, k=current loop
{   //wr,pr=wheel/pen ratio:        5,        3,        4,            6,        6,
    var wr:float[]=new float[10];wr[0]=2.5;wr[1]=1.5;wr[2]=1.33333;wr[3]=1.2;wr[4]=6;
    var pr:float[]=new float[10];pr[0]=5.0;pr[1]=4.0;pr[2]=6.00000;pr[3]=10; pr[4]=2;
    var vr = 4;
    var wheel=wr[vr];
    var theta =(1/N)*Mathf.PI *pr[vr]*k;
    var rtheta =theta*wheel;
    var small = (1-1/wheel);//
    var cx=Mathf.Cos(theta)*small;
    var cz=Mathf.Sin(theta)*small;
    var ex=Mathf.Cos(theta-rtheta)/wheel;
    var ez=Mathf.Sin(theta-rtheta)/wheel;

    return Vector3(cx+ex,0,cz+ez);
}

在MathWorld的文章中有一些非常好的图片,这使我们更容易描绘正在发生的事情

特别解释 对于特定数量的“边”,外半径(R)和内半径(R)之间的比率很容易计算出来。从小圆中心到“笔”的距离决定了形状各边的“块状”

sides = R / r
对于所要求的八面样本,在不使用c代码“妨碍”的情况下,查看方程的形式是有指导意义的。在Mathematica中,这可以写成:

hypotrochoid[R_, r_, h_] := Function[t, {
   (R - r) Cos[t] + h Cos[(R - r) t/r],
   (R - r) Sin[t] - h Sin[(R - r) t/r]
   }]

ParametricPlot[hypotrochoid[1, 1/8, 1/40][t], {t, 0, 2 \[Pi]}]

笔画长度 要计算画笔绘制长度,需要两条信息。1) 函数的周期和2)单周期内曲线的弧长

有一个很好的解释是关于下转子的周期,但在你描述的情况下,周期将是2π。在更一般的情况下,如果R和R都是,周期将是有限的,并且是2pi的倍数

可以根据参数化曲线的表达式找到画笔绘制长度

代入下转子方程(经过一些简化,并假设周期为2π),最终得出弧长的表达式:

通过检查,我相信在R,R和h上有适当的约束,你应该能够得到一个解析解(可能是一个函数族)。如果你有R,R和h的值,一个好的计算机代数系统(CAS)会找到一个解决方案


无论您是否有CAS,对于近乎多边形的螺旋描记器,弧长方程非常简单,可以使用简单的方法(欧拉积分)求解

如果笔位于小轮边缘,则8面螺旋描记器的笔线长度为小轮半径的8倍。同样适用于6、5、4等

多边形也可以按以下方式以三角法绘制:

这里是函数绘图仪中的演示。

非常感谢!我会再研究一下。我认为我的代码版本不太容易理解,因为我已经把小轮子写成了1-1/r。再次感谢。对于每种不同的情况,笔行长度比似乎都相当简单,一个简单的分数或整数。对于笔位于小轮边缘的所有周期形状的线条长度,必须有一个简单的数学公式,如果笔离边缘更远,也可能有一个简单的数学公式。。。我希望有一天我有机会弄明白!当我尝试/如果别人知道的话,这应该很容易。我花了一段时间编写了一个spirograph代码,但不知怎么的,我有1个倒数轮大小,这会弄乱输入比率,所以我应该重写与您编写的相同的代码…在代码中,计算长度的最简单方法是检查任何两个段是否完全相同,并调用函数返回。进一步的研究表明,对于制作螺旋描记器而言,正弦波螺旋描记器比没有分支的2d L-系统有更大的局限性。。。在xy上,以谨慎的步骤将下一点的曲线从1-5度更改为令人惊叹的螺旋描记器。