배경의 영역의 경계 지점을 계산 : 최근 GDI 놀아 하였다는 "원형 세그먼트"와 "서브 영역"
+는 "디스크"360도 일소 변색 디스플레이를 그리는 . (HSL (1,1,1) -> HSL (360,1,1)을 반복하는 RGB 코드로 일부 HSL을 그렸다)
디스크에 대해서는 먼저 위의 방법을 사용하여 완전 솔리드 원을 그렸습니다. 다음 센터를 통해 회색에 두 번째 원은 다음
그래서이 모든 괜찮 제공합니다 ...하지만 나는 GDI + 여기에 무슨 까다로운 경기를 많이에서 우리를 절연되어 실현 방법은 FillPie
입니다. 또한 FillPie
을 사용하려면 반경 길이와 반대로 파이의 경계 사각형을 제공해야합니다. 또한 전체 세그먼트 채우기를 수행하고 그 세그먼트의 일부만 지정할 수는 없습니다.
질문 :
사람이 어떤 수학 함수의 방향으로 날 지점 또는 나는 다음 "녹색 채워진 영역"의 영역 & 플롯 포인트를 계산해야 될지 제조법에 어떤 설명을 줄 수 주어진 : 수학 소스에
Point `c` - an x,y co-ordinate
Angle `A` - an angle from horizontal
Angle `B - an angle from horizontal where `B` - `A` == the sweep angle
Length `r` - a distance from `c`
Length `r2` - a distance from `c` where `r2` - `r` == the `height` of the segment to be filled.
링크는 잘하지만 나는 빠른 구글 & 모습을 했어 볼프람 수학 (Wolfram Math)에서 제가 찾고있는 것을 발견 할 수있었습니다. 또한 테두리 (x, y)의 시퀀스를 생성 할 수있는 방법이 있거나 Graphics.FillPolygon에 Point[]
으로 전달 될 수있는 방법이 있으면 멋지기도합니다.
+1 에릭. A와 B 사이의 t 증가량이 작을수록 점수가 더 좋을 것입니다. 예 : A가 30 *이고 B가 45 * 인 경우 A와 B 사이의 값이 커질수록 커브의 해상도를 더 좋게하십시오 ... 낮음 Res = (30, 35, 40, 45) 높음 Res = (30, 30.5, 31, 31.5, ... 44.5, 45) –
예, 외부 회로의 일부 픽셀 수에 해당합니다. cle. 외부 원상의 점 사이의 호 길이는 (r + r2) * dt입니다. 여기서 dt는 라디안 단위의 각도 증분입니다. –
+1. @Eoin, http://hyperphysics.phy-astr.gsu.edu/hbase/vect.html에서 벡터 생성/연산 공식을 참조하여 Eric의 공식이 어디에서 왔는지 확인하십시오. –