V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
commoccoom
V2EX  ›  问与答

请教个数学问题,计算弧长

  •  
  •   commoccoom · 2020-12-15 10:05:15 +08:00 · 2431 次点击
    这是一个创建于 1435 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有个亲戚是做钢琴黑键的,他发了张图给我,让我计算下弧长。请教下画红线的地方的弧长怎么计算,感觉不是普通的拱形。。。或者有什么软件能做到类型的事情。

    112.png

    25 条回复    2020-12-15 19:57:50 +08:00
    Cooky
        1
    Cooky  
       2020-12-15 10:07:59 +08:00 via Android
    涂颜色印纸上拿根线贴边再拉直了量一下?
    commoccoom
        2
    commoccoom  
    OP
       2020-12-15 10:10:07 +08:00
    @Cooky 他好像要设置机器的参数,最好是有计算公式,太难了😂
    Cooky
        3
    Cooky  
       2020-12-15 10:12:58 +08:00 via Android
    @commoccoom 公式估计不麻烦吧,两边是斜线,顶头应该是个半圆?量对了长度和直径算出来再和手量的比较一下?
    hoyixi
        4
    hoyixi  
       2020-12-15 10:14:55 +08:00
    这不是规则圆形吧,看着可以用抛物线逼近
    commoccoom
        5
    commoccoom  
    OP
       2020-12-15 10:15:28 +08:00
    @Cooky 我感觉还是要让他拍正面,现在这个角度看,感觉两边的都是有弧度的,而不是斜线
    admonition
        6
    admonition  
       2020-12-15 10:21:39 +08:00
    直接拿线比一下,量线不行吗?
    commoccoom
        7
    commoccoom  
    OP
       2020-12-15 10:26:01 +08:00
    @hoyixi 我感觉那个两侧是抛物线,上面是个圆弧。
    just1
        8
    just1  
       2020-12-15 10:26:45 +08:00   ❤️ 2
    要公式的话,切面拍照用 getdata 取弧线点,然后用抛物线函数去拟合
    just1
        9
    just1  
       2020-12-15 10:29:00 +08:00 via Android   ❤️ 1
    如果觉得不是抛物线,用多项式拟合就好,要是怕不好弄,matlab 拟合工具箱走起,有图形界面
    lizhantju
        10
    lizhantju  
       2020-12-15 10:32:28 +08:00 via iPhone
    诸位没学过高数吗?你知道坐标方程之后对 x,y 变量的平方开根号求积分就行了。精确计算没有其他方法。至于说多项式拟合我也算佛了
    lizhantju
        11
    lizhantju  
       2020-12-15 10:33:24 +08:00 via iPhone
    知道坐标方程之后对 x,y 变量的导数的平方开根号求积分就行了
    commoccoom
        12
    commoccoom  
    OP
       2020-12-15 10:35:49 +08:00
    @lizhantju 现在是不知道坐标方程。先要知道方程,然后再计算弧长
    learningman
        13
    learningman  
       2020-12-15 10:47:56 +08:00 via Android
    @lizhantju 对现实世界的东西求方程除了拟合还能咋办。。。打电话找厂家问参数?
    vtoexwj
        14
    vtoexwj  
       2020-12-15 11:31:43 +08:00
    需要很精确吗?直尺平铺在 A4 纸上,用钢琴黑键“弧线”凸起的“棱”靠着直尺在 A4 纸上“滚轧”出痕迹,再量一下?
    IgniteWhite
        15
    IgniteWhite  
       2020-12-15 11:33:43 +08:00 via iPhone
    @just1
    @lizhantju
    @learningman
    如果考虑编程的话最合适的是傅立叶级数啊!根据 n 次导数是否一致,连续取到一定的级数不久逼近了嘛。这种弧形求出解析解也不难
    IgniteWhite
        16
    IgniteWhite  
       2020-12-15 11:34:40 +08:00 via iPhone
    @IgniteWhite 一致连续,打错了
    chocovon
        17
    chocovon  
       2020-12-15 11:40:06 +08:00
    这些弧形结构连弧度是多少都不知道,更别说计算弧长了
    解决办法要么就是拿到原本的设计参数,要么就是自己凭感觉仿造一套设计
    Mashirobest
        18
    Mashirobest  
       2020-12-15 11:40:55 +08:00 via Android
    @lizhantju 你不拟合曲线哪知道方程,要是知道方程 lz 也不会发出来了,我也是佛了哦。。。
    sillydaddy
        19
    sillydaddy  
       2020-12-15 13:10:25 +08:00   ❤️ 1
    @commoccoom 琴键的加工信息一般是通过造型参数来描述的。造型软件比如 Pro/E,Catia 这些,会有一套专门表示零件形状与加工信息的方法(实体边界表示,简称 BREP)。

    看你发的图里面,这个琴键的头部是一个斜面,然后头部的 2 个角有两个倒角,倒角的形状好像是球形,所以,只需要知道斜面的参数,然后知道球的圆心半径,就可以把交线求出来。

    如果倒角确实是球,那么这个红线应该是 2 段圆弧+2 段线段组成的。
    iConnect
        20
    iConnect  
       2020-12-15 13:15:19 +08:00 via Android
    这个问题,咨询搞数控机床的应该很简单的。
    q149072205
        21
    q149072205  
       2020-12-15 13:26:02 +08:00
    百度模型扫描仪,招出来还有 3D 模型图还有参数。。
    sillydaddy
        22
    sillydaddy  
       2020-12-15 13:38:59 +08:00
    @commoccoom
    再补充一下,如果倒角确实是球面的话,只需要知道琴键头部的斜面,就可以推导出球心半径了——因为需要满足倒角之后,圆弧和线段连接的地方,切线斜率一致,也就是说,圆弧的切线要与线段的方向一致。——满足这样条件的球是可以唯一求得的:

    球心:到斜面、侧面、顶面 3 个面的距离相等的一点,就是球心
    球半径:球心到任一一个面的距离。

    所以,你可以找到斜面的参数(比如量一下角度),然后把 3 个平面的方程确定出来,再计算出球心和球半径。最后计算出交线就可以了。
    当然前提是倒角是球面。而且图片里面,侧边的棱好像也有倒角,图片看不太清,但求解思路是一样的。
    sillydaddy
        23
    sillydaddy  
       2020-12-15 13:51:09 +08:00
    @sillydaddy #22
    说错了,22L 里面的“面”,应该换成“棱”: “到 3 个面距离相等” => “到 3 条棱的距离相等”
    littlecreek
        24
    littlecreek  
       2020-12-15 13:55:30 +08:00
    你亲戚不会是打算山寨吧, 否则怎么回没有图纸?
    yzbythesea
        25
    yzbythesea  
       2020-12-15 19:57:50 +08:00
    你近似一个长方形截面做,机器搞定了之后,让工人拿砂纸磨出弧线来。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1018 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 107ms · UTC 20:28 · PVG 04:28 · LAX 12:28 · JFK 15:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.