포물선을 사용하여 2 차 곡선의 제어점을 찾는 방법은 무엇입니까?

codeomnitrix

방정식을 갖는 포물선을 그리는 방법을 알 수 없습니다. y^2 = 4ax

그래서 두 끝점, 즉 P0, P2가 있지만 quadraticCurveTo()기능 에 넣을 제어점을 찾는 방법을 알 수 없습니다 .

user1693593

2 차 베 지어를이 포물선 수식에 일치시키고 원점이 0이라고 가정 하려면 끝점 중 하나에 제어점을 배치 -y0하거나 -y1끝점 중 하나 에서 제어점을 배치 할 수 있습니다 .

먼저 공식을 재정렬 해 보겠습니다.

y 2 = 4 축

에:

x = y 2 / 4a

아래에서 아래로 플롯 할 수 있습니다.

이 경우 우리는 간단히 모든 것을 요약하고 제어점으로 y와 mid x의 역수를 사용할 수 있습니다.

하지만 일반적인 원칙은 끝점의 접선을 찾는 것입니다. 그런 다음 그 선이 제어점과 교차하는 곳에 배치해야합니다. 교차로를 찾는 방법에 대한 수학적 단계 를 원한다면 Erik Man의 답변을 여기 에서 살펴볼 것을 권장 합니다 (오늘 게시되었지만 훨씬 더 자세한 수학 내용을 분석합니다).

따라서 캔버스 창에 플로팅하면 (검은 색은 포물선, 빨간색은 2 차 곡선) :

var ctx = document.querySelector("canvas").getContext("2d"),
    w = ctx.canvas.width, h = ctx.canvas.height;
ctx.strokeStyle = "red";
ctx.lineWidth = 2;
ctx.translate(0, 6);

// formula
function f(y, a) {return y * y / (a * 4)};

var a = 80;

plotWindow();

function plotWindow() {
  
  ctx.clearRect(0, -6, w, h);
  ctx.fillStyle = "#000";
  
  // plot parabola using formula
  for(var i = 0; i < w; i++) {
    var y = f(i - w * 0.5, a);
    ctx.fillRect(i - 2, y - 2, 4, 4);
  }

  // plot parabola using quadratic curve:
  var x0 = 0;
  var y0 = f(-w * 0.5, a);
  var x1 = w;
  var y1 = f( w * 0.5, a);
  var cx = x1 * 0.5;  // control point is center for x
  var cy = -y0;       // control point is -y0 for y assuming top of parabola = 0

  ctx.beginPath();
  ctx.moveTo(x0, y0);
  ctx.quadraticCurveTo(cx, cy, x1, y1);
  ctx.stroke();
  
  // plot a
  ctx.fillStyle = "blue";
  ctx.fillRect(cx - 3, a - 3, 6, 6);
  ctx.fillText("a=" + a, cx + 6, a + 5)
}

// slider
document.querySelector("input").onchange = function() {
  a = +this.value;
  plotWindow();
};
canvas {border:1px solid #777}
<script src="https://cdn.rawgit.com/epistemex/slider-feedback/master/sliderfeedback.min.js"></script>
<label>a: <input type="range" min=10 max=172 value=80></label><br>
<canvas width=600 height=190></canvas>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

2 차 베 지어 곡선의 세 번째 제어점을 계산하는 방법은 무엇입니까?

분류에서Dev

opencv 또는 python을 사용하여 2 개의 교차 (교차) 곡선을 감지하는 방법은 무엇입니까?

분류에서Dev

물체를 피하는 베 지어 곡선 제어점을 계산하는 방법은 무엇입니까?

분류에서Dev

주어진 암시 적 함수를 사용하여 베 지어 곡선의 제어점을 계산하는 방법은 무엇입니까?

분류에서Dev

vector <vector <int >>를 사용하여 행렬의 2 차 대각선 위에있는 요소의 합을 찾는 방법은 무엇입니까?

분류에서Dev

곡률에 대해 사용 가능한 데이터 세트를 사용하여 곡선의 접선을 찾는 방법은 무엇입니까?

분류에서Dev

CSS 변환을 사용하여 곡선으로 된 포물선 경로에서 그림을 이동하는 방법은 무엇입니까?

분류에서Dev

div를 사용하여 곡선을 그리는 방법은 무엇입니까?

분류에서Dev

2 차 베 지어 곡선 코드를 3 차 베 지어 곡선으로 변환하는 방법은 무엇입니까?

분류에서Dev

선을 구부리기 위해 베 지어 곡선의 제어점을 설정하는 방법은 무엇입니까?

분류에서Dev

Plotly : 두 선 사이의 교차점을 찾고 주석을다는 방법은 무엇입니까?

분류에서Dev

Microsoft Excel : 두 선의 교차점을 찾는 방법은 무엇입니까?

분류에서Dev

포인터를 사용하여 2 차원 배열 선언에서 오류를 제거하는 방법은 무엇입니까?

분류에서Dev

R의 곡선에서 두 점 사이의 전체 거리를 찾는 방법은 무엇입니까?

분류에서Dev

diffy gem을 사용하여 두 파일의 차이점을 표시하는 방법은 무엇입니까?

분류에서Dev

곡선이있는 여러 선의 교차점을 어떻게 찾을 수 있습니까?

분류에서Dev

회귀선이 OY 축과 교차하는 지점을 찾는 방법은 무엇입니까?

분류에서Dev

numpy.linalg.solve 주어진 포인트 좌표를 사용하여 두 선이 교차하는 위치를 찾는 방법은 무엇입니까?

분류에서Dev

주어진 접선 방향으로 2 차 베 지어에서 점 (있는 경우)을 찾는 방법은 무엇입니까?

분류에서Dev

R을 사용하여 단어의 후행 및 선행 단어를 찾는 방법은 무엇입니까?

분류에서Dev

np.array를 사용하여 행 길이가 다른 2 차원 배열을 선언하는 방법은 무엇입니까?

분류에서Dev

데이터의 단일 산점도에 여러 곡선을 맞추는 방법은 무엇입니까?

분류에서Dev

CSS와 JavaScript를 사용하여 정규 분포 곡선 (종 곡선)을 그리는 방법은 무엇입니까?

분류에서Dev

ng2-charts에서 직선 차트의 선을 직선으로 만드는 방법은 무엇입니까?

분류에서Dev

r의 점에 대수 곡선을 맞추는 방법은 무엇입니까?

분류에서Dev

"precintcon"R 패키지를 사용하여 플로팅 된 Lorenz 곡선의 제목을 변경하는 방법은 무엇입니까?

분류에서Dev

2 차원 목록이있을 때 무작위 선택을 생성하는 방법은 무엇입니까?

분류에서Dev

R의 일련의 점에 맞는 곡선을 찾는 방법은 무엇입니까?

분류에서Dev

하나의 이미지에 곡선과 직선을 그리는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    2 차 베 지어 곡선의 세 번째 제어점을 계산하는 방법은 무엇입니까?

  2. 2

    opencv 또는 python을 사용하여 2 개의 교차 (교차) 곡선을 감지하는 방법은 무엇입니까?

  3. 3

    물체를 피하는 베 지어 곡선 제어점을 계산하는 방법은 무엇입니까?

  4. 4

    주어진 암시 적 함수를 사용하여 베 지어 곡선의 제어점을 계산하는 방법은 무엇입니까?

  5. 5

    vector <vector <int >>를 사용하여 행렬의 2 차 대각선 위에있는 요소의 합을 찾는 방법은 무엇입니까?

  6. 6

    곡률에 대해 사용 가능한 데이터 세트를 사용하여 곡선의 접선을 찾는 방법은 무엇입니까?

  7. 7

    CSS 변환을 사용하여 곡선으로 된 포물선 경로에서 그림을 이동하는 방법은 무엇입니까?

  8. 8

    div를 사용하여 곡선을 그리는 방법은 무엇입니까?

  9. 9

    2 차 베 지어 곡선 코드를 3 차 베 지어 곡선으로 변환하는 방법은 무엇입니까?

  10. 10

    선을 구부리기 위해 베 지어 곡선의 제어점을 설정하는 방법은 무엇입니까?

  11. 11

    Plotly : 두 선 사이의 교차점을 찾고 주석을다는 방법은 무엇입니까?

  12. 12

    Microsoft Excel : 두 선의 교차점을 찾는 방법은 무엇입니까?

  13. 13

    포인터를 사용하여 2 차원 배열 선언에서 오류를 제거하는 방법은 무엇입니까?

  14. 14

    R의 곡선에서 두 점 사이의 전체 거리를 찾는 방법은 무엇입니까?

  15. 15

    diffy gem을 사용하여 두 파일의 차이점을 표시하는 방법은 무엇입니까?

  16. 16

    곡선이있는 여러 선의 교차점을 어떻게 찾을 수 있습니까?

  17. 17

    회귀선이 OY 축과 교차하는 지점을 찾는 방법은 무엇입니까?

  18. 18

    numpy.linalg.solve 주어진 포인트 좌표를 사용하여 두 선이 교차하는 위치를 찾는 방법은 무엇입니까?

  19. 19

    주어진 접선 방향으로 2 차 베 지어에서 점 (있는 경우)을 찾는 방법은 무엇입니까?

  20. 20

    R을 사용하여 단어의 후행 및 선행 단어를 찾는 방법은 무엇입니까?

  21. 21

    np.array를 사용하여 행 길이가 다른 2 차원 배열을 선언하는 방법은 무엇입니까?

  22. 22

    데이터의 단일 산점도에 여러 곡선을 맞추는 방법은 무엇입니까?

  23. 23

    CSS와 JavaScript를 사용하여 정규 분포 곡선 (종 곡선)을 그리는 방법은 무엇입니까?

  24. 24

    ng2-charts에서 직선 차트의 선을 직선으로 만드는 방법은 무엇입니까?

  25. 25

    r의 점에 대수 곡선을 맞추는 방법은 무엇입니까?

  26. 26

    "precintcon"R 패키지를 사용하여 플로팅 된 Lorenz 곡선의 제목을 변경하는 방법은 무엇입니까?

  27. 27

    2 차원 목록이있을 때 무작위 선택을 생성하는 방법은 무엇입니까?

  28. 28

    R의 일련의 점에 맞는 곡선을 찾는 방법은 무엇입니까?

  29. 29

    하나의 이미지에 곡선과 직선을 그리는 방법은 무엇입니까?

뜨겁다태그

보관