曲线参数设置

每一条连接的几何参数包括以下四个:

  • 半径(radius)
  • 贝塞尔曲率(bezier_radiius)
  • 有效贝塞尔半径(bezier_radius_purity)
  • 峰值(crest)
  • 扰动(perturb)

精美地代价就是熵比较高,参数比较复杂。为了大家更好的理解,我想先提提小提琴的例子。我们知道提琴发声的原理是震动,我们通过改变振动频率来改变音高。一种有效改变频率的方法就是改变有有效弦长:

我们调整的贝塞尔曲率类似我们手指拨起弦的高度。而峰值类似于改变琴桥的位置(相当于一个控制点)。
扰动则是弦的震动的记录 O(∩_∩)O

1 曲线半径(radius)

即曲线终点在半径上的位置。
定义方法有较大的灵活性:(建议使用相对半径)

# 50% of inner ideogram radius
radius = 0.5r 

# 50 pixels inside inner ideogram radius
radius = 1r - 50p

# 25 pixels outside inner ideogram radius
# careful - links will overlap with ideogram
radius = 1r + 25p

# links terminate 750 pixels from image center
radius = 750p

2 贝塞尔曲线wiki

概念:

贝塞尔曲线是计算机图形图像造型的基本工具,是图形造型运用得最多的基本线条之一。它通过控制曲线上的四个点(起始点、终止点以及两个相互分离的中间点)来创造、编辑图形。其中起重要作用的是位于曲线中央的控制线。这条线是虚拟的,中间与贝塞尔曲线交叉,两端是控制端点。移动两端的端点时贝塞尔曲线改变曲线的曲率(弯曲的程度);移动中间点(也就是移动虚拟的控制线)时,贝塞尔曲线在起始点和终止点锁定的情况下做均匀移动。注意,贝塞尔曲线上的所有控制点、节点均可编辑。这种“智能化”的矢量线条为艺术家提供了一种理想的图形编辑与创造的工具。

图示参数:

2.1 贝塞尔曲率(bezier_radiius)

bezier_radius控制用于强调链接中曲率的控制点的径向位置。 没有任何附加参数,每个Link将其控制点放置在相同的径向位置,而不管起点和终点的位置如何。简单来说,这个参数控制了曲线的弯曲程度,越大(比如大于1)越弯曲(整条线的曲度),越小越直,为0r的时候呈直线

实例

2.2 峰值(crest)

理解该参数需要理解贝塞尔曲线,该值表示在贝塞尔曲线上新增的两个控制点的半径。直观上理解,Link的两端曲率被固定死(两端曲率由bezier_radius决定),该参数能修改中间曲率。

实例

可以看到crest越大,中间的圈圈越小。

2.3 有效贝塞尔半径(bezier_radius_purity)

前面我们知道了如何操纵整体的曲度,和按住两端操控中间曲度的方法。但是对于那些link的起始位置相近的点,他们受
贝塞尔曲率(bezier_radiius)的影响十分大,可能会出现一些极端的情况(见下图),这并不美观,因此我们还有补救办法,那就是purity。首先我们来看看定义:

bezier_radius_purity调整每个链接的p2的位置。 p2控制点将沿着由原始p2位置和p0-p1与平分半径的交点形成的线移动。 当purity= 1时,p2'= p2。 当纯度= 0时,p2'=中点(p0,p1)。如果定义了bezier_radius_purity,crest将使用新的贝塞尔半径控制点(p2')。

当然purity还可以小于0,这样就会向外突出:

3 扰动(perturb)

看了之前的参数,不知道你有没有感受到十分慌乱((●'◡'●)),不过精美的代价就是熵比较大,可调参数很多。然而还不够,perturb参数还可以乱上加乱。
首先来看看定义:perturb参数可用于随机调整bezier_radius,bezier_radius_purity和峰值参数,使链接更加无组织,有质感。 通过扰乱每个链接,您还可以在通常重叠的Link之间的数据中显示额外的纹理。每个参数的扰动量定义为一对值 - pmin,pmax。 这些是可以扰动该值的最小和最大乘数。
简单来说,就是为了让原来那些比较重和的线条,通过添加一些参数使他们显示出了(说白了,图画得能多复杂就多复杂,就害怕你感受不到我的复杂)

具体参数设计方式为:

perturb               = yes
perturb_crest         = 0
perturb_bezier_radius = 0.5,1.2
perturb_bezier_radius_purity = 0.5,1

perturb是一组值,(pmin,pmax)。上面的参数表示:

  • crest不变,
  • 贝塞尔半径变成原来的50-120%
  • 有效贝塞尔半径 变成原来的 50-100%

当然你也可将perturb改成负数。
By using pmin<0, you can force some values to become negative at times. For example, if crest = 0.5, then perturb_crest = -1,2 would perturb crest to lie in the range [-0.5,1).

results matching ""

    No results matching ""