2011-10-11 2 views
3

이것은 매우 잘 복제 될 수 있지만, 내 문제에 특정한 것을 발견하지 못했습니다.등고선 알고리즘

그림 상자에 xy 표가 있습니다. 각 그리드 셀에는 특정 질량이 있습니다. 질량을 기준으로이 xy 격자에 등고선을 만들고 싶습니다.

누구든지이 작업을 수행하는 좋은 알고리즘에 대한 아이디어가 있습니까? VB6에서이 작업을 수행하려고하지만 모든 알고리즘이이를 수행하려고합니다.

Contour Grid

편집 나는 그리드가있다. 나는 질량을 기반으로 등고선을 표시하고 싶다. (IE, 그 중 하나 이상의 점을 지닌 셀은 질량이 더 큼다.)

+0

아마 당신이보고 싶은 결과의 예제를 제공 할 수 있다면 더 나은 응답을 얻을 것입니다. – Brad

+0

http://dynamicdatadisplay.codeplex.com/ : 누군가 다른 질문에이 점을 언급했습니다. http://www.stackoverflow.com/questions/3180401/net-open-source-contour-plotting –

답변

1

이 질문은 조금 오래되었지만 나의 경험은 거의 같다. 전에.

  • 이 (그리드의 각 지점에서 필드 강도를 계산 나는 당신의 질량에 따라 중력장 윤곽 같은 플롯 위해 노력하고 있으리라 믿고있어 :

    이 비트 맵에 간단한 윤곽을 생산 포인트).

  • 두 가지 다른 색상으로 등고선 사이의 대체 공간을 채색하십시오. 예 : 등고선이 (전계 강도의) 100 단위가되어야한다면, ToInt(pixel_field_strength/100) % 2을 기준으로 각 픽셀의 색상을 선택하십시오.
  • 윤곽선을 만들기 위해 색상 경계의 가장자리를 추적합니다. 예를 들어 두 가지 색상이 흰색과 검은 색이면 검정색 픽셀에 인접한 흰색 픽셀 만 유지합니다.

결과에 관심이있는 경우 의견에 제안 된대로 라이브러리를 사용하십시오.

순수하게 향수를 위해서, 나는 원래의 BBC 베이직 코드를 발견했다. 그것은 여전히 ​​modelb (BBC 마이크로 에뮬레이터)에서 실행됩니다.

10 REM THIS COMES WITH NO WARRANTY! 
    20 
    30 REM Gravity field 
    40 
    50 MODE 1 
    60 PROCsetup 
    70 FOR Y%=300 TO 900 STEP 4 
    80 FOR X%=200 TO 800 STEP 4 
    90  R=LOG(FNforce(X%,Y%)) 
    100  GCOL0,((R*10) MOD 2)+1 
    110  PLOT69,X%,Y% 
    120  NEXT 
    130 NEXT 
    140 PROCcontour 
    150 VDU19,1,0,0,0,0 
    160 VDU19,2,0,0,0,0 
    170 END 
    180 DEFPROCsetup 
    190 N%=5 
    200 DIM X%(N%),Y%(N%),M%(N%) 
    210 FOR P%=1 TO N% 
    220 READ X%(P%),Y%(P%),M%(P%) 
    230 NEXT 
    240 ENDPROC 
    250 DATA 625,625,1000000 
    260 DATA 425,725,1000000 
    270 DATA 475,425,1000000 
    280 DATA 375,575,1000000 
    290 DATA 725,525,1000000 
    300 DEFFNforce(X,Y) 
    310 P=0 
    320 FOR P%=1 TO N% 
    330 DX=X%(P%)-X:DY=Y%(P%)-Y 
    340 R=SQR(DX*DX+DY*DY) 
    350 P=P+M%(P%)/R 
    360 NEXT 
    370 =P 
    380 DEFPROCcontour 
    390 GCOL0,3 
    400 FOR Y%=300 TO 900 STEP 4 
    410 FOR X%=200 TO 800 STEP 4 
    420  IF POINT(X%,Y%)=1 AND (POINT(X%+4,Y%)=2 OR POINT(X%-4,Y%)=2 OR POINT(X%,Y%+4)=2 OR POINT(X%,Y%-4)=2) THEN PLOT69,X%,Y% 
    430  NEXT 
    440 NEXT 
    450 ENDPROC 
관련 문제