万花尺轨迹性质研究

因为快毕业了,把本科期间做过的一些有意思的小作业整理一下

1、轨迹方程

将万花尺简化为下图:笔尖位于A点,子尺(动系)的圆心为C(动点),半径为b,母尺的圆心位于O点,半径为a,显然万花尺画出的图案与笔尖的运动速度无关,故设副尺以恒定角速度ω(设为顺时针方向)转动。设C点坐标为(Xc,Yc),A点相对于C点的坐标为(Xr,Yr),A点在XOY在坐标系中坐标为(X,Y),子尺,母尺及笔落点的位置关系如下图所示。
在这里插入图片描述
由于子尺与母尺接触点是瞬心,所以C点的运动速度为ωb,方向与OC连线垂直,则C绕O点转动的角速度为-ωb/(a-b),所以θ=ωbt/(a-b);由于子尺自转方向与C绕O转动方向相反,由角速度合成,子尺相对于OC的角速度为ωa/(a-b),所以=ωat/(a-b),可得Φ=θ-=-ωt。

坐标(Xc,Yc),(Xr,Yr),(X,Y)有如下关系:在这里插入图片描述

由A点坐标表达式知曲线的几何形状与a,b,h有关。

2、周期

设起点处θ=θ1,经过一段时间后θ=θ2,且有: 在这里插入图片描述

其中m,n为整数,易知上面的两个方程是曲线有周期性的充要条件,(θ2-θ1)为周期。
解上面的方程,可得m,n有如下关系: n/m=(a-b)/b,如果 (a-b)/b能化为整数比,则这样的m,n存在,当C点转过角度足够大或曲线足够长时,曲线一定能闭合,C点转过的角度的周期为Δθ=2mπ=2nπb/(a-b)(m,n满足n/m=(a-b)/b),若子尺以匀角速度ω转动,则T=2mπ(a-b)/(bω)= 2nπ/ω;若(a-b)/b不能化为整数比,则周期为无穷大或者说不存在。

3、轨迹的形状

由曲线表达式知曲线的几何形状为圆内旋轮线。

(1)、曲线的范围:
A点到O点的距离的平方r²=(a-b)²+h²+2h(a-b)cos(aθ/b),r²max=(a-b)²+h²+2h(a-b)=a²即h=b时,曲线上离O点最远的点位于母尺的圆上。
h>b时,曲线为长辐圆内旋轮线
在这里插入图片描述

(2)、曲线的边数(瓣数)
在b/a为有理数时,设其最简整数比为为k/l,动圆与定圆的周长比也为k/l。
当k=1时,说明当动圆绕定圆一周后,落笔点也回到原位置,此时点画出l次相同的首位连接的弧线后回到出发点。因此这时的图案有l个曲边,或者说有l瓣。其中当l=2时,图形为椭圆,此时视椭圆由两个曲边构成。
当k>1时,说明当动圆绕定圆一周后,落笔点不在原位置,当动圆绕定圆k周时,落笔点才能回到出发点,而此时的图案有l个曲边,或者说有l瓣,此时有如下关系式:
在这里插入图片描述

4、万花尺图形特例分析——玫瑰线

当满足a-b=h时,有:r²=2h²(1+cos(aθ/b))=4h²cos²(aθ/(2b)),万花尺曲线由:r=2hcos(aθ/(2b)),r=-2hcos(aθ/(2b))两条曲线组成,此时曲线所有边都在图形中心处相交。
由玫瑰线方程ρ=Acos(nα),除2、(2)中讨论的确定瓣数的方法,还可以根据玫瑰线的几何特性来计算其瓣数,现以n为奇数和偶数举例如下:n=2k+1即a=(4k+2)h/(4k+1),b=h/(4k+1)时,ρ=Acos(nα)共有(2k+1)个叶子,但是因为万花尺曲线由两条对称曲线组成所以共有 2*(2k+1)个叶子;相应的n=2k即a=4k/(4k-1),b=h/(4k-1)时万花尺曲线共有4k个叶子。如下图所示:
在这里插入图片描述

5、结论

综合上述讨论可得如下结论:设万花尺母尺半径为a,子尺半径为b,落笔点距子尺中心h,则万花尺形状由a,b,h以及落笔点移动的距离有关;轨迹曲线在(a-b)/b(或者a/b)能化为整数比时,周期存在,落笔点移动足够长后曲线可以闭合;曲线能闭合时,曲线的瓣数与b/a的值(设为k/l)有关,且有:
在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 抱歉,作为AI语言模型,我无法提供图形化的代码。但我可以提供一些思路供您参考。 万花尺是一种绘制曲线的工具,可以在平面上绘制出各种复杂的图形。实现万花尺需要用到一些数学知识和图形库。 以下是一个简单的万花尺实现思路: 1. 导入必要的模块 ```python import turtle import math ``` 2. 定义绘制曲线的函数 ```python def draw_curve(t, length, n): if n == 0: t.forward(length) else: angle = 60 t.left(angle) draw_curve(t, length / 2, n - 1) t.right(angle * 2) draw_curve(t, length / 2, n - 1) t.left(angle) ``` 3. 初始化画布和画笔 ```python t = turtle.Turtle() t.speed(0) t.hideturtle() t.penup() t.setposition(-200, 0) t.pendown() ``` 4. 调用绘制函数,绘制曲线 ```python draw_curve(t, 400, 3) ``` 5. 关闭画布 ```python turtle.done() ``` 这是一个简单的万花尺实现,您可以根据需求进行修改和扩展。 ### 回答2: 万花尺是一种几何绘图工具,它能够通过调整角度和长度来绘制出各种不同的图形,如五角星、六边形等等。下面是一个用Python实现的万花尺的简单代码: ```python import turtle def draw_flower(length, angle): turtle.speed(10) # 设置绘制速度 for _ in range(int(360 / angle)): turtle.forward(length) # 绘制线段 turtle.right(angle) # 调整角度 if __name__ == "__main__": length = 100 # 线段长度 angle = 60 # 调整角度 draw_flower(length, angle) turtle.done() ``` 以上代码使用`turtle`库来进行绘图。首先我们设置绘制的速度为10,然后通过循环来绘制多条线段,绘制的线段长度为`length`,每绘制一条线段之后,我们通过`right()`函数将角度调整为`angle`,以此来绘制出各种不同的图形。 在该代码中,我们通过调整`length`和`angle`的值,可以绘制出不同的万花尺图形。例如,将`length`设置为50,`angle`设置为90,就可以画出正方形。将`length`设置为100,`angle`设置为60,可以画出六边形。 当程序运行时,会弹出一个窗口,并在窗口上绘制出我们所期望的图形。 ### 回答3: 万花尺是一种用于绘制圆形、椭圆形和曲线轨迹的绘图工具。下面是使用Python编写一个简单的万花尺的代码: ```python import turtle import math # 定义万花尺的绘制函数 def draw_spiral(): turtle.speed(10) # 设置绘制速度 length = 1 # 初始线段长度 angle = 0 # 初始角度 # 通过循环绘制螺旋线 while length < 600: turtle.forward(length) turtle.right(angle) length += 0.5 angle += math.sin(math.radians(angle)) * 5 turtle.done() # 绘制完成后保持窗口不关闭 # 调用绘制函数 draw_spiral() ``` 运行以上代码,会弹出一个绘图窗口,然后通过循环不断绘制线段,线段的长度逐渐增加,同时绘制的角度也逐渐增加,从而形成一个螺旋线。最终绘制出来的螺旋线就是我们所谓的万花尺效果。 这只是一个简单的示例,只实现了万花尺的基本效果。如果需要实现更复杂的效果,可以根据需求进行调整和改进。希望能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值