示例#1
0
 /// <summary>
 /// 色が近似的に等価とみなせるか判定する
 /// </summary>
 /// <param name="a">色その1</param>
 /// <param name="b">色その2</param>
 /// <param name="hue_tolerance">色相の許容範囲</param>
 /// <param name="satulation_tolerance">飽和度の許容範囲</param>
 /// <param name="luminance_tolerance">明るさの許容範囲</param>
 /// <param name="alpha_tolerance">判定結果</param>
 /// <returns>近似的に等価と見做せる場合は true, それ以外は false</returns>
 static public bool NearlyEqualsInHSLA
     (this Color a, Color b
     , PlaneAngle hue_tolerance    = null
     , double satulation_tolerance = 1.0e-2
     , double luminance_tolerance  = 1.0e-2
     , double alpha_tolerance      = 1.0e-2
     )
 {
     var(ha, sa, la, aa) = a.ToHSLA();
     var(hb, sb, lb, ab) = b.ToHSLA();
     return
         (ha.NormalizedNearlyEquals(hb, hue_tolerance ?? PlaneAngle.Degree) &&
          sa.NearlyEquals(sb, satulation_tolerance) &&
          la.NearlyEquals(lb, luminance_tolerance) &&
          aa.NearlyEquals(aa, alpha_tolerance)
         );
 }