Graphics 画一个不完美的圆

Graphics 画一个不完美的圆,graphics,random,language-agnostic,geometry,Graphics,Random,Language Agnostic,Geometry,通过编程画一个完美的圆并不那么困难。毕竟,它是基于一些非常简单的数学。输入两个参数(中心和半径)并输出圆 但是,如果你没有工具来帮助你,画一个自由形式的圆(比如拿着笔)是非常困难的!如果我想模拟一个人试图画一个圆,有没有什么算法可以用它来取三个参数(一个中心、一个半径和一个“错误因子”),并使用第三个值的大小来创建圆中的随机缺陷,当仍然产生一些看起来很像一个人试图画一个圆的东西时?将圆绘制为一系列圆弧,包括“向内”和“向外”,重新计算每个线段的正确中心,以使圆弧端点保持在实际圆周的特定距离内。徒

通过编程画一个完美的圆并不那么困难。毕竟,它是基于一些非常简单的数学。输入两个参数(中心和半径)并输出圆


但是,如果你没有工具来帮助你,画一个自由形式的圆(比如拿着笔)是非常困难的!如果我想模拟一个人试图画一个圆,有没有什么算法可以用它来取三个参数(一个中心、一个半径和一个“错误因子”),并使用第三个值的大小来创建圆中的随机缺陷,当仍然产生一些看起来很像一个人试图画一个圆的东西时?

将圆绘制为一系列圆弧,包括“向内”和“向外”,重新计算每个线段的正确中心,以使圆弧端点保持在实际圆周的特定距离内。

徒手绘制的圆是随机的,但看起来仍然是连续的。向半径添加噪波可能会导致看起来不切实际的跳跃

稍微修改一下就可以在一定程度上解决这个问题。使用马尔可夫矩阵,将噪声分为
N
级,并且只有三对角项。这将导致随机性,但它只能过渡到上一级/下一级。让它看起来连续。

这里有一种方法--您可以根据自己的目的调整或采用。如果你足够努力的话,我想你也会找到其他语言的实现。