2017-12-23 32 views
0

길이가 110.366 인 선과 길이가 각각 1.011 인 선을 그리는 경우 90도 각도가 아닌 각도로 그립니다. 선들이 서로 60도 각도에 있고 선의 시작점이 같은 지점에 있다고 가정 해 봅시다. 작은 선의 눈금이 4 픽셀이되도록 배율을 높이면 큰 선의 길이는 440 픽셀이됩니다. 또한 1.11, 1.22 및 1.33과 같은 몇 개의 작은 선을 비교할 경우 동일한 길이로 표시됩니다. 페인트 캔버스에서 더 높은 해상도를 얻을 수있는 방법이 있나요? 그래서 작은 차이와 긴 선을 동시에 볼 수 있습니까?길이가 1000을 초과하는 짧은 선을 그려 양쪽 모두가 표시되도록합니다.

// Long line length 116.60317460 at angle of 312 degrees 
// Short line length 1.1111111 at angle of 240 degrees 
// Start at point 200,204 at an angle of 68 degrees difference 
MoveTo(200, 204); 
LineTo(200 + 316, 204 - 348); 
MoveTo(200, 204); 
LineTo(200 - 4, 204 - 4); 

심지어 이것 포인트는 이미 정수로 절단되고 있으며, 코사인 주어진 각도의 사인에 의해 결정됩니다 1. X 년대와 y의 길이에 가까운 라인을 비교할 때 사용자가 정확한 정보를 얻지 못하고있다. 두 픽셀 아래의 선은 일반적으로 보이지 않습니다. 긴 선은 화면을 벗어나서 사용자가 더 긴 선을 비교하여 그래프 감각을 얻지 못하게 할 수 있습니다. 스케일링은 아마도 도움이 될 것이지만 나는 전혀 모른다. 제 3 자 셰어웨어로 제한됩니다.

답변

1

라인이 모두 공통점을 공유하는 경우 길이의 로그 변환을 사용하여 범위를 압축합니다.

그렇지 않은 경우 문제가 발생합니다.

+0

불행히도 선들이 서로 정확한 비율을 가져야하므로 아마도 그 선이 붙어있을 것입니다. 당신의 도움을 주셔서 감사합니다. –

+0

@keterpstra_mwu : "줄은 올바른 비율이어야합니다". 진심이야? –

+0

Truncate 함수 외부에서 요인 중 하나를 배치 했으므로 다른 값은 항상 0으로 계산됩니다. Truncate 기능에 새로운 요소가 도입되면 그래프에서 그래프가 더 잘 나타나기 시작하고 최소한 볼 수있게되었습니다. 나는 xs와 ys가 언제나 0 일 때만 이것을 알아 차렸다. 두 개의 트리 그래프가 올바르게 작동하므로 감지하기가 더 어려웠습니다. 당신의 도움을 주셔서 감사합니다. –