2010-05-23 2 views
2

pixman 이미지 라이브러리는 두 원 사이에 방사형 색상 그라디언트를 그릴 수 있습니다. 방사형 그래디언트가 "너비"와 "높이"로 정의 된 직사각형 영역을 완전히 채우고 싶습니다. 이제 내 질문에, 어떻게 외부 원의 반경을 선택해야합니까? 나는 바깥 원의 반지름을 선택해야하는 방법사각형을 완전히 채우려면 원 반경을 선택하십시오.

A) inner circle (start of gradient) 
center pointer of inner circle: (width*0.5|height*0.5) 
radius of inner circle: 1 
color: black 

B) outer circle (end of gradient) 
center pointer of outer circle: (width*0.5|height*0.5) 
radius of outer circle: ??? 
color: white 

는 바깥 원은 전체 폭 * 높이에 의해 정의 된 내 경계 사각형을 채울 것입니다 있는지 확인 :

나의 현재 매개 변수는 다음과 같습니다. 모서리에 빈 영역이 없어야하며, 영역은 원으로 완전히 덮여 야한다. 즉, 경계 사각형의 너비, 높이가 완전히 바깥 쪽 원에 맞아야합니다. 바깥 원의 반경

outer_radius = max(width, height) * 0.5 

을 선택하는 것은 분명 충분하지 않습니다. 더 커야하지만 얼마나 커야합니까?

감사합니다.

답변

4

직경은 쉽게 피타고라스의 정리에서 계산할 수있는 사각형의 대각선해야한다. 예 :

outer_radius = 0.5 * sqrt(width * width + height * height)

0

그냥 피타고라스의 :

outer_radius = sqrt((width/2)^2 + (height/2)^2); 

이상 단순히 : 원의

outer_radius = sqrt(width^2 + height^2)/2; 
-1

조금 스케치를 확인하고 피타고라스의 정리 적용 : 여기에 사용

[스케치 이미지를; 링크가 깨진이며, 호스트가 현재 악성 코드로 플래그가 어쨌든]

코드에서

:

outer_radius = sqrt(0.25 * (width*width + height*height)) 
0

귀하의 질문이 명확하지 않다, 그러나 아마 당신이 SQRT 원하는 (w^2 + H^2)/2

직사각형 중심에서 모퉁이까지의 거리입니다.

0

사용 피타고라스 :

outer_radius = sqrt(width*width + height*height)*0.5 
0

당신은 측면 동일한 폭/2 및 높이/2와 직각 삼각형의 빗변의 길이를 원한다. 또는 직사각형의 대각선 길이의 1/2. (h/2^2 + w/2^2) 의 제곱근 또는 (h^2 + w^2)의 1/2 제곱

관련 문제