2013-08-26 1 views
0

마우스 위치를 밝기로 변환하는 코드에 "작은"문제가 있습니다.C# 마우스 위치를 라디안으로 변환

내 마우스의 머리가 가리켜 야 할 위치를 결정하려면 마우스 위치가 필요합니다. 코드가 작동하고 머리 회전 ...하지만! 피치의 최대 값에 너무 빨리 도달합니다.

정확하게 나는 광도 계산이나 C#에서 너무 날카로 웠으므로 전문가의 도움을 받아야합니다. :)

내 코드 :

maxcursory = Screen.PrimaryScreen.Bounds.Height; 

cursory = Cursor.Position.Y; 

pitch = (float) (((3/maxcursory * cursory) - 1.5) * 1); 

내가 필요로하는 최소 및 최대 값 : -0.6720 편집

0.5149에 : 고정 코드 표시 오류입니다. ;)

편집 2 : 추가 된 최소 및 최대 당신이 잘못된 위치에 * 기호가 보인다

+1

이 코드는 컴파일 코드가 아닙니다. @tnw –

+0

Err, 어떻게 된 것인지 모르겠지만 그렇습니다. 이제 문제가 해결되었습니다. :) –

+0

@ NoIdeaForName 네, 그게 내가 지적한 것입니다. 하하 – tnw

답변

1

그래서 당신이 선택하려는 최대 화면 높이에 대한 커서 y 위치의 비율을 기준으로 최소 및 최대 값 내의 값?

현재 피치 계산은 -1.5에서 1.5 사이의 범위를 제공합니다. -.6720와 0.5149 사용의 범위에 대한

:

1.1869 * cursory/maxcursory -.672 

또는이 일반화 :

(rangeEnd-rangeStart)*(cursory/maxcursory) + rangeStart 

편집 : 나는 당신이 알고 있지만, 가정 단지의 경우에, Cursor.Position.Y 취급 화면의 상단은 0으로, 하단은 높이와 같습니다. 따라서 화면 상단이 .5149, 하단이 -.672 인 경우 범위 시작과 끝은 각각 .5149와 -.672가됩니다.

-1.1869 * cursory/maxcursory + .5149 
+0

그것은 재미있어 보입니다! 나는 내일 먼저 그것을 시험해 볼 것이다! :) –

+0

굉장! 그것은 완벽하게 작동합니다! 고마워 친구! :디 –

0

pitch = (float) (((3/maxcursory cursory *) - 1.5) * 1); 

시도 :

pitch = (float) (((3/maxcursory * cursory) - 1.5) * 1); 
+1

그는 코드가 그를 위해 일한다고 말했다. 이것은 아마도 오타 일 것이다. –

+0

Err, 나는 어떻게 된 것인지 모르겠다. 그렇다. 이제 문제가 해결되었습니다. :) –