randRangeNonZero( -10, 10 ) randRangeNonZero( -5, 5 ) B * YINT 0 randRange( 2, 6 )

Grafica la siguiente ecuación:

expr([ "*", B, "y" ]) = C

Resuelve y para convertir expr([ "*", B, "y" ]) = C a la forma pendiente intersección.

Divide ambos lados entre B:

\qquad y = \color{GREEN}{YINT}

La intersección con el eje y es YINT, y esta ecuación representa una linea donde todos los puntos tienen y = YINT.

Escojamos algunos puntos donde y = YINT. (-X_EXAMPLE, YINT) y (X_EXAMPLE, YINT) son ambos buenas opciones.

style({stroke:GREEN,fill:GREEN},function(){graph.exampleA=circle([-1*X_EXAMPLE,YINT],.2).toBack(),graph.exampleB=circle([X_EXAMPLE,YINT],.2).toBack()})

Podemos ver que estos puntos se alinean para formar una recta horizontal que cruza el eje y en (0, YINT).

style({stroke:BLUE,strokeWidth:2,strokeDasharray:"."},function(){plot(function(){return YINT},[-11,11]).toBack()})
randRangeNonZero( -10, 10 ) randRangeNonZero( -5, 5 ) B * XINT randRange( 2, 6 ) randRange( 2, 6 )

Grafica la siguiente ecuación:

expr([ "*", B, "x" ]) = C

Observa que no hay ninguna y en esta ecuación. Intenta resolver para x y ve qué pasa.

Divide ambos lados entre B:

\qquad x = \color{GREEN}{XINT}

Esta ecuación representa la recta donde todos los puntos tienen x = XINT.

Escojamos algunos puntos donde x = XINT. (XINT, -Y_EXAMPLE), (XINT, Y_EXAMPLE_2) y (XINT, Y_EXAMPLE) son todos buenas opciones.

style({stroke:GREEN,fill:GREEN},function(){graph.exampleA=circle([XINT,-1*Y_EXAMPLE],.2).toBack(),graph.exampleB=circle([XINT,Y_EXAMPLE],.2).toBack(),graph.exampleA=circle([XINT,Y_EXAMPLE_2],.2).toBack()})

Podemos ver que estos puntos se alinean para formar una recta vertical que cruza el eje x en (XINT, 0).

style({stroke:BLUE,strokeWidth:2,strokeDasharray:"."},function(){line([XINT,-11],[XINT,11]).toBack()})
Arrastra los dos puntos para mover la recta a la posición correcta.
[ graph.pointA.coord, graph.pointB.coord ]
return abs(guess[0][0]-XINT)<.001&&abs(guess[1][0]-XINT)<.001
graph.pointA.setCoord(guess[0]),graph.pointB.setCoord(guess[1]),graph.line1.transform(!0)
reduce( randRangeNonZero( -5, 5 ), randRange( 1, 5 ) ) randRangeNonZero( max( -10, -10 - SLOPE_FRAC[0] ), min( 10, 10 - SLOPE_FRAC[0] ) ) SLOPE_FRAC[0] / SLOPE_FRAC[1] SLOPE === 1 ? "" : ( SLOPE === -1 ? "-" : fraction( SLOPE_FRAC[0], SLOPE_FRAC[1], true, true ) ) randRangeNonZero( -3, 3 ) SLOPE_FRAC[0] * -MULT SLOPE_FRAC[1] * MULT SLOPE_FRAC[1] * YINT * MULT random() < 0.3

Grafica la siguiente ecuación:

expr([ "+", [ "*", A, "x" ], [ "*", B, "y" ] ]) = C

y = PRETTY_SLOPE x + YINT

Convierte expr([ "+", [ "*", A, "x" ], [ "*", B, "y" ] ]) = C a la forma pendiente-intersección (o ecuación de la recta) despejando y.

Suma abs( A )x a ambos lados:

Subtract abs( A )x from both sides:

\qquad expr( [ "*", B, "y" ] ) = expr([ "+", [ "*", -A, "x" ], C ])

Divide ambos lados entre B:

\qquad y = expr([ "+", "\\dfrac{" + expr([ "*", -A, "x" ]) + "}{" + B + "}", "\\dfrac{" + C + "}{" + B + "}" ])

\qquad y = \color{purple}{PRETTY_SLOPE} x \color{GREEN}{+ YINT}

La intersección con el eje y es YINT y la pendiente es decimalFraction( SLOPE, true, true ).

La intersección con el eje y es YINT, así que la recta debe pasar por el punto (0, YINT).

style({stroke:GREEN,fill:GREEN},function(){graph.yint=circle([0,YINT],.2).toBack()})

La pendiente es decimalFraction( SLOPE, true, true ). Recuerda que la pendiente te dice lo que se eleva en el recorrido. Por cada paso que damos nos debemos mover abs( SLOPE_FRAC[0] ) posiciones hacia abajo (pues es negativa)arriba.Para cada paso que damos nos debemos mover abs( SLOPE_FRAC[0] ) posición hacia abajo (porque es negativo) para arriba. Para cada paso que damos también debemos movernos SLOPE_FRAC[1] posiciones a la derecha.Para cada paso que damos también debemos movernos SLOPE_FRAC[1] posición a la derecha.

style({stroke:"purple",strokeWidth:2,arrows:"->"},function(){path([[0,YINT],[0,YINT+SLOPE_FRAC[0]]]).toBack(),path([[0,YINT+SLOPE_FRAC[0]],[SLOPE_FRAC[1],YINT+SLOPE_FRAC[0]]]).toBack()}),label([0,YINT+SLOPE_FRAC[0]/2],abs(SLOPE_FRAC[0])+" \\text{ "+(SLOPE_FRAC[0]<0?$._("abajo"):$._("arriba"))+"} \\quad","left",{color:"purple"}),label([0,YINT+SLOPE_FRAC[0]],SLOPE_FRAC[1]+" \\text{ "+$._("derecha")+"}",SLOPE_FRAC[0]<0?"below right":"above right",{color:"purple"}),graph.yint.toBack()

Así que la recta debe también pasar por (SLOPE_FRAC[1], YINT + SLOPE_FRAC[0])

style({stroke:BLUE,strokeWidth:2,strokeDasharray:"."},function(){plot(function(e){return e*SLOPE+YINT},[-11,11]).toBack()})
graphInit({range:11,scale:20,axisArrows:"<->",tickStep:1,labelStep:1,gridOpacity:.05,axisOpacity:.2,tickOpacity:.4,labelOpacity:.5}),label([0,11],"y","above"),label([11,0],"x","right"),addMouseLayer(),graph.pointA=addMovablePoint({coord:[-5,5],snapX:.5,snapY:.5,normalStyle:{stroke:KhanUtil.BLUE,fill:KhanUtil.BLUE}}),graph.pointB=addMovablePoint({coord:[5,5],snapX:.5,snapY:.5,normalStyle:{stroke:KhanUtil.BLUE,fill:KhanUtil.BLUE}}),graph.line1=addMovableLineSegment({pointA:graph.pointA,pointZ:graph.pointB,fixed:!0,extendLine:!0}),graph.pointA.onMove=function(e,r){return e!=graph.pointB.coord[0]||r!=graph.pointB.coord[1]},graph.pointB.onMove=function(e,r){return e!=graph.pointA.coord[0]||r!=graph.pointA.coord[1]},graph.pointA.toFront(),graph.pointB.toFront()
Arrastra los dos puntos para mover la recta a la posición correcta.
[ graph.pointA.coord, graph.pointB.coord ]
if(_.isEqual(guess,[[-5,5],[5,5]]))return"";var e=(guess[1][1]-guess[0][1])/(guess[1][0]-guess[0][0]),r=e*(0-guess[0][0])+guess[0][1];return abs(SLOPE-e)<.001&&abs(YINT-r)<.001
graph.pointA.setCoord(guess[0]),graph.pointB.setCoord(guess[1]),graph.line1.transform(!0)