Plotter GUI 구성 요소의 자체 스케일링 통치자 용 알고리즘
문제
C # / WPF를 사용하여 의료 데이터를위한 데이터 시리즈 뷰어 프로그램을 설계 (프로그래밍하지 않음)하고 있습니다. 공통 마우스 팬 / 줌 기능 (왼쪽 드래그가있는 팬, 스크롤이있는 팬, 더블 클릭, 오른쪽 클릭으로 선택, 선택, 끌기가있는 선택, 선택, 선택, 끌기가있는 팬이있는 팬이있는 데이터를 보여주는 하나의 메인 패널이 있습니다.
문제는 다음과 같습니다. 오디오 편집 (Goldwave, Audacity),지도 제작법 (GPStrackMaker) 및 Ilustration (Photoshop, Inkscape) 프로그램과 유사한 맨 위 / 왼쪽에있는 통치자가있는 세로 및 수평 격자가 필요합니다. 게다가,이 통치자는 대부분의 플로팅 API (MATLAB, GNUPLOT, MATPLOTLIB) 및 사무 프로그램 (Excel, Calc)에서도 구성 할 수 있습니다.
주요 필수 항목은 항상 콘텐츠로 정렬되고 크기가 조정 된 것입니다. 서로 레이블이 "타격"되거나 서로 숨기거나 숨기지 않고 최대 세분성으로 틱 레이블을 똑딱 똑딱 inkscape에 동일한 도면의 두 개의 줌 레벨을 보여주는 이미지입니다. 첫 번째 행은 각각의 레이블을 보여줍니다. 두 번째 행은 매 10 년의 레이블을 보여줍니다.
질문은 다음과 같습니다. 내 필요에 맞는 컨트롤? "
나는 어떤 제안이나 예를 들어 C #에서 어떤 제안이나 예를 알 수 없지만 어떤 언어로든있을 수 있습니다.
해결책
- w= 눈금자의 가시적 인 단백질
- x= 범위 (오른쪽 왼쪽)
- w= 레이블 폭
n = W/w
(최대 레이블 수를 표시 할 수 있음)x = X*w/W
(두 개의 레이블 간의 최소 범위)그런 다음 X를 더 크고 쿨러 값 1, 2 또는 5를 어느 정도 interiving해야합니다.
예 :
-
x=18.4
=>x1=20
-
x=539
=>x1=1000
w1 = x1/X*W
(레이블 폭 또는 틱 사이의 공간)n1 = W/w1
(틱 수)
-