sju-coml / 2020-Font-picker

SAI I 트리케라톱스 팀의 Font-Picker
6 stars 1 forks source link

Issue 2. Interpolation distribution solution #8

Open cmoweg opened 3 years ago

cmoweg commented 3 years ago

image 대충 정규 분포의 누적 함수 역으로부터 분위수(quartile ...)를 구하고, 0부터 1사이로 매핑시켰다. 라고 설명하는 사진. Interporation 애니메이션에서 알파의 중앙값에서 급격한 변화를 보이는 것을 해결하기 위함이었는데, 느려졌을 뿐이었다.(정확히는 급격한 변화 과정을 더 상세히)

from scipy.stats import norm
rv = norm(loc = 0, scale = 1)

n = 10

end_point = 1 - 1/n
start_point = 1/n
width = rv.ppf(end_point) - rv.ppf(start_point)
zero_point = rv.ppf(end_point)

normDisInvList = []
for i in range(1, n):
  print(rv.ppf(i/n)+zero_point, end=" : ")
  print((rv.ppf(i/n)+zero_point)/width)
  normDisInvList.append((rv.ppf(i/100)+zero_point)/width)

###
# output
0.0 : 0.0
0.4399303319716862 : 0.17163973101025243
0.7571510528365595 : 0.2954040528657172
1.0282044624088007 : 0.4011561025138544
1.2815515655446004 : 0.5
1.5348986686804 : 0.5988438974861455
1.805952078252641 : 0.7045959471342828
2.1231727991175147 : 0.8283602689897476
2.5631031310892007 : 1.0
###

inf, -inf: 무한, 무한소에 대해서 파이썬은 다음과 같은 상수를 출력함을 확인했다. -2.0249030182998364e-16 0.9999999999999999 따라서 굳이 홀수로 정할 필요는 없으나, 0.5의 쾌감을 위해서는 어쩔 수 없었다.

cmoweg commented 3 years ago

https://stackoverflow.com/a/20627638/14099774