그래서 나는 어려움을 겪습니다. 이 전에 삼각법을 알지 못했지만 배웠습니다.하지만 아무 것도 작동하지 않는 것 같습니다.각도를 기반으로 (x, y) 좌표를 찾아야합니다.
그래서 몇 가지 참고 사항 : HTML에서, 데카르트 원점 (0,0) 화면의 왼쪽 상단 모서리입니다. DIVS 자연 회전은 0deg 또는 ----> 이쪽입니다.
내가 언급 한 x, y 점을 찾아야합니까? 문제를 표시하십시오.
$('#wrapper').on('click', function(e){
mouseX = e.pageX;
mouseY= e.pageY;
var angle = getAngle(mouseX,Rocket.centerX,mouseY,Rocket.centerY);
var angleDistance = Math.sqrt((Math.pow((mouseX - (Rocket.left+Rocket.halfX)),2)) + (Math.pow((mouseY-(Rocket.top+Rocket.halfY)),2)));
var cp2Angle = -90 +(angle*2);
var invCP2Angle = 90+ angle;
var cp2Distance = angleDistance*.5;
//Red Line
$(this).append('<div class="line" style="transform-origin:left center;width:'+(Math.round(angleDistance))+'px;top:'+(Rocket.top+Rocket.halfY)+'px;left:'+(Rocket.left+Rocket.halfX)+'px;transform:rotate('+(Math.round(angle))+'deg);"></div>');
//Blue Line
$(this).append('<div class="line" style="background:#0000FF;transform-origin:left center;width:'+Math.round(cp2Distance)+'px;top:'+(mouseY)+'px;left:'+(mouseX)+'px;transform:rotate('+(Math.round(cp2Angle))+'deg);"></div>');
}
function getAngle(x2,x1,y2,y1){
var angle = Math.degrees(Math.atan2(y2-y1,x2-x1));
return angle;
}
Math.degrees = function(radians) {
return (radians * 180)/Math.PI;
};
이렇게 혼동 될 수 있습니다. 기본적으로 페이지를 클릭하면 Math.atan2()를 사용하여 내 사용자 지정 원점과 마우스 점 사이의 각도를 계산합니다. 또한 Math.sqrt ((Math.pow ((x2 - x1), 2)) + (Math.pow ((y2-y1), 2))))를 사용하여 거리를 계산합니다.
파란색 선의 길이는 빨간색 선의 길이의 절반이며 빨간색 선의 각도에 따라 각도가 변경됩니다.
빨간색 선의 각도 = 0deg (평평한 선) 일 때 파란색 선의 각도는 -90 (또는 빨간색 선 -45도에서 곧은 위로, 파란색 선은 -180 빨간색 선 -90에서 파란색 선은 -270도 (곧은 아래)입니다. 수식은 -90 + (각도 * 2)입니다.
파란색 선의 다른 끝점을 알아야합니다. 디버그에만 존재하지만 베티 커브에서 로켓을 움직이는 애니메이션이 있기 때문에 요점이 필요합니다. 마우스 클릭 각도에 따라 컨트롤 포인트를 변경해야합니다. 삼각법, 그럼 알려주세요.
각도가 sl Math.tan (라디안 단위의 각도)을 사용하여 찾을 수 있습니다. 때로는 첫 번째 각도가 0 도인 경우 삼각형이 직각 삼각형이되고, 때로는 삼각형이 아닐 수도 있지만 직선이 아래로 바뀌는 경우도 있습니다 (예 : -90을 클릭하는 경우).
나는 또한 시도했다 극좌표 내가 사용하는 각도 확실하지라고 생각 :
var polarX = mouseX-(cp2Distance * Math.cos(Math.radians(invCP2Angle)));
var polarY = mouseY- (cp2Distance * Math.sin(Math.radians(invCP2Angle)));
나는이 mathematics.stackexchange에 적합한 지 궁금 ...? 어쨌든 잠시 기다려 주시면 도와 드리겠습니다 ...: D –
이미지를 삽입 해 주셔서 감사합니다! – WSaunders
삼각법을 알지 못하셨습니까? 그 고등학교 수학 아니야? – Barmar