저는 디바이스 컨텍스트에서 파이썬을 사용하여 이미지를 그렸습니다. 그리고 그것을 부드럽게 움직이기/수직 또는 수평으로 움직이기를 원합니다.디바이스 컨텍스트 파이썬에서 그려진 객체를 어떻게 움직일 수 있습니까?
어떤 알고리즘을 사용해야합니까? 이런 종류의 작업에 대한 정보는 어디서 얻을 수 있습니까?
저는 디바이스 컨텍스트에서 파이썬을 사용하여 이미지를 그렸습니다. 그리고 그것을 부드럽게 움직이기/수직 또는 수평으로 움직이기를 원합니다.디바이스 컨텍스트 파이썬에서 그려진 객체를 어떻게 움직일 수 있습니까?
어떤 알고리즘을 사용해야합니까? 이런 종류의 작업에 대한 정보는 어디서 얻을 수 있습니까?
개체가 장치 컨텍스트에서 그려지면 개체 컨텍스트에 그대로 유지됩니다. 이동하려는 경우 다시 그릴 필요가 있습니다.
고정 된 배경을 유지하고 움직일 때마다 이동식 요소 만 다시 그릴 수 있습니다. 기본적으로 이것이 완료된 방법입니다.
(나는 프로그램이 준비되어 있지 않기 때문에 단지 당신에게 아이디어를 줄 수)이 같은 뭔가를해야 라인을 통해 원활 객체를 이동하려면그것은 알고리즘이 될 것입니다.
나는 또한 PyGame을 살펴볼 것을 제안합니다. 어쩌면 당신은 그것을 사용할 수 있고 그것도 약간의 튜토리얼을 가지고있다.
정확히! 시간이 지남에 따라 계산 된 좌표 값을 부드럽게 변경하는 방법에 대한 정보가 필요합니다 .... – gath
원활 당신이 객체가 목적지에 도착하기 위해 수행하는 방법을 긴 첫째, 스스로에게 물어 필요 시작 사이의 객체가 (x1, y1)
및 대상이 (x2,y2)
좌표 좌표 이동합니다. 개체가 t
시간 단위 (어쩌면 초, 시간, 뭐든간에)에 도착하기를 원합니다. 이 결정되면 그 다음 변위 단위 시간당 운동에 간단하다 :
dx = (x2-x1)/t
dy = (y2-y1)/t
지금 당신은 단순히 (처음 (x,y)
(x1,y1)
)을 객체의 위치로 모든 단위 시간을 (dx,dy)
를 추가 할 때 개체를 중지해야합니다 목적지의 어떤 임계 거리 내에 도착한다. 이 누적됩니다 부서에 사실 오류를 설명하는 것입니다, 그래서 당신은 같은 평등 검사를 한 경우 :
(x,y)==(x2,y2)
이제까지 true가됩니다 않을 수 있습니다.
위의 방법은 일정한 속도, 직선 운동을 제공합니다. 대신 약간의 복잡한 수식을 사용하여 개체에 가속, 유지 속도, 유지 보수를 제공 할 수 있습니다. 다음 공식은 유용 할 수 있습니다 :
이v(t) = u(t) + t*a(t)
x(t) = v(t) + t*v(t)
이 단지 Euler's method, 그리고 애니메이션을 위해 충분합니다.
이 링크는 http://stackoverflow.com/questions/126761/how-can-i-move-an-object-drawn-in-device-context-python과 중복되어 있습니까? 둘 중 하나를 닫을 수 있습니까? –
사용중인 그래픽 라이브러리를 말해야합니다. – wnoise