createGoldenRatioDivides static method
创建黄金分割线
Implementation
static List<NamedLine> createGoldenRatioDivides({
NamedLine? fromStartLine,
NamedLine? toEndLine,
bool includeStartEnd = false}){
NamedLine fromStart = fromStartLine ?? NamedLine.percent(0.0, name: NAME_START);
NamedLine toEnd = toEndLine ?? NamedLine.percent(1.0, name: NAME_END);
goldenStartPercentGetter(size)=> 0.382 * (toEnd.percentGetter(size) - fromStart.percentGetter(size)) + fromStart.percentGetter(size);
goldenEndPercentGetter(size)=> 0.618 * (toEnd.percentGetter(size) - fromStart.percentGetter(size)) + fromStart.percentGetter(size);
List<NamedLine> excludeStartEnd = [
NamedLine.getter(
goldenStartPercentGetter,
name: '$GOLDEN_RATIO_DIVIDES-$NAME_START:(1/1)=>${goldenStartPercentGetter(Size.square(1.0))}',
),
NamedLine.getter(
goldenEndPercentGetter,
name: '$GOLDEN_RATIO_DIVIDES-$NAME_END:(1/1)=>${goldenEndPercentGetter(Size.square(1.0))}',
)
];
return includeStartEnd ? [
NamedLine.rename(rename: '$GOLDEN_RATIO_DIVIDES-$NAME_START', copy: fromStart),
... excludeStartEnd,
NamedLine.rename(rename: '$GOLDEN_RATIO_DIVIDES-$NAME_END', copy: toEnd)
] : excludeStartEnd;
}