티스토리 뷰
내항의곱과 외항의 곱은 같다는 것을 이용
A : a = B : b
A * b = a * B
b = a * B / A
대응점 = 위치 * 전체너비 / 현재너비
∴Y.x = X.x * ( D - C ) / (B - A) + C
∴Y.x = X.x * D / B (시작점을 0으로 맞추었을경우)
import flash.events.MouseEvent;
import flash.geom.Rectangle;
import flash.events.Event;
var A:int = 10;
var B:int = 210;
var C:int = -10;
var D:int = 390;
var X_legnth:Number = (B - A);
X.bar.buttonMode = true;
X.bar.addEventListener(MouseEvent.MOUSE_DOWN, down);
function down(e:MouseEvent):void{
var bounds:Rectangle = new Rectangle(A,0,X_legnth,0);
X.bar.startDrag(true, bounds);
stage.addEventListener(MouseEvent.MOUSE_UP, up);
X.bar.addEventListener(Event.ENTER_FRAME, loop);
}
function up(e:MouseEvent):void{
X.bar.stopDrag();
X.bar.removeEventListener(Event.ENTER_FRAME, loop);
}
function loop(e:Event):void{
var pos:Number;
//일차함수
//pos = (D-C) / (B-A) * (X.bar.x - A) + C; //공식대입
//pos = (390 - (-10)) / (210 - 10 ) * (X.bar.x - 10) + (-10); //숫자대입
//비례식
pos = (X.bar.x - A) * (D-C) / (B-A) + C; //공식대입
//pos = (X.bar.x - 10) * (390 - (-10)) / (210 - 10) + (-10); //숫자대입
Y.bar.x = pos;
}
빨간점을 드래그하여 움직이면 노란색 원이 같이 움직인다.
'■ 개발관련 ■ > 산수와 알고리즘' 카테고리의 다른 글
| 거리,속력,시간 구하기 (0) | 2013.10.13 |
|---|---|
| 비례공식 - 이미지의 가로, 세로 비율유지 (자바스크립트) (0) | 2013.10.13 |
| 비례공식 - 일차함수 (0) | 2013.10.13 |
| 탄성공식 - 마우스 따라다니기 응용 (0) | 2013.10.13 |
| 탄성공식 (0) | 2013.10.13 |
댓글