如何使用parbola方程绘制图形 [英] How to draw a graph using parbola equation

查看:149
本文介绍了如何使用parbola方程绘制图形的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用抛物线方程( y = x * x )创建图形。但我有点困惑,计算控制点的值。我该如何计算控制点值。

I am trying to create a graph using parabola equation (y=x*x). But I am bit confused to calculate the value for control point. How should I calculate the control point value.

我的JavaScript函数:

function drawParabola()
{
    ctx.beginPath();
    for(i=-2;i<=2;i++)
    {                     
        //formual y= x * x;
        y = i * i;
        x = i;
        if (i == -2) {
            ctx.moveTo((5 + x) * 30, Math.abs((-5 + y)) * 30);      
        }
        else {
            //ctx.lineTo((5 + x) * 30, Math.abs((-5 + y)) * 30);
            context.quadraticCurveTo(**?**, **?**, (5 + x) * 30, Math.abs((-5 + y)) * 30);
        }
        ctx.strokeStyle = 'orange';
        ctx.stroke();
    }
}


推荐答案

二次曲线的控制点是切线的交点。

The control point for a quadratic curve is the intersection point of the tangents.

  context.beginPath();
  context.strokeStyle = 'orange';
  for(i=-2;i<=2;i++) {
    // Current point
    x1 = i;        
    y1 = x1 * x1;
    y1p = 2 * x1; // derivitive

    // Previous point
    x0 = i - 1;
    y0 = x0 * x0;
    y0p = 2 * x0; // derivitive

    // Find intersection of tangents
    // line0: y - y0 = y0p * (x - x0)
    // line1: y - y1 = y1p * (x - x1)
    //
    // line0: y = y0p * x - y0p * x0 + y0
    // line1: y = y1p * x - y1p * x1 + y1
    //
    // y0p * x - y0p * x0 + y0 = y1p * x - y1p * x1 + y1
    // y0p * x - y1p * x = y0p * x0 - y0 - y1p * x1 + y1
    // x = (y0p * x0 - y0 - y1p * x1 + y1) / (y0p - y1p)

    // Intersection point of tangents
    xi = (y0p * x0 - y0 - y1p * x1 + y1) / (y0p - y1p);
    yi = y0p * xi - y0p * x0 + y0;

    // Rescale for rendering
    cx = (5 + x1) * 30;
    cy = (5 + y1) * 30;

    cix = (5 + xi) * 30;
    ciy = (5 + yi) * 30;

    if (i == -2) {
      context.moveTo(cx, cy);
    }
    else {
      //context.lineTo(cx, cy);
      context.quadraticCurveTo(cix, ciy, cx, cy);
    }
  }
  context.stroke();

这篇关于如何使用parbola方程绘制图形的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆