The Hyperbola is the set of points whose distance to two fixed points called foci always has the same difference in length.

The line through the foci is called the Transverse Axis. For the vertical axis, the equation is

solving for Y

The complete hyperbola graph is made by calling the rectangular coordinate loop (not shown here) twice with a positive and negative value function.

Sub draw_hyp_02()
'rect coordinates
'init_hyperbola reads in Xmin, Xmax and X_inc from form
Call init_hyperbola
A = frm_hyperbola.txt_a2.Value
B = frm_hyperbola.txt_b2.Value
strLabel = "Y^2/" & A & "^2 - X^2/" & B & "^2 = 1"
'rect coordinate graphing loop
Call draw_rect("hyp_02_plus")
Call draw_rect("hyp_02_minus")
C = ((A ^ 2) + (B ^ 2)) ^ (1 / 2)
Call draw_point(0, -C, "Focus")
Call draw_point(0, C, "Focus")
Call draw_line_mxb(A / B, 0, Xmin, Xmax, "Asymptote")
Call draw_line_mxb(-A / B, 0, Xmin, Xmax, "Asymptote")
If frm_hyperbola.chk_box_label_graph = True Then
label_graph
End If
acadApp.Update
End Sub
Function hyp_02_plus(x As Double) As Double
hyp_02_plus = ((x ^ 2) / (B ^ 2)) + 1
hyp_02_plus = hyp_02_plus ^ (1 / 2)
hyp_02_plus = A * hyp_02_plus
End Function
Function hyp_02_minus(x As Double) As Double
hyp_02_minus = ((x ^ 2) / (B ^ 2)) + 1
hyp_02_minus = hyp_02_minus ^ (1 / 2)
hyp_02_minus = -(A * hyp_02_minus)
End Function
Sub draw_line_mxb(m As Double, b_int As Double, x1 As Double, x2 As Double, Optional strname As String = "no_name")
'y=mx+b
Dim lineobj As AcadLine
Dim y1 As Double, y2 As Double
Dim pt1(0 To 2) As Double
Dim pt2(0 To 2) As Double
y1 = m * x1 + b_int
y2 = m * x2 + b_int
pt1(0) = x1: pt1(1) = y1: pt1(2) = 0
pt2(0) = x2: pt2(1) = y2: pt2(2) = 0
Set lineobj = acadDoc.ModelSpace.AddLine(pt1, pt2)
On Error Resume Next 'to not crash if layer does not exist
If strname <> "no_name" Then
lineobj.Layer = strname
End If
End Sub
Sub draw_point(x1 As Double, y1 As Double, Optional strname As String = "no_name")
Dim pointobj As AcadPoint
acadDoc.SetVariable "PDMODE", 35
acadDoc.SetVariable "PDSIZE", -4
Dim pt1(0 To 2) As Double
pt1(0) = x1: pt1(1) = y1: pt1(2) = 0
Set pointobj = acadDoc.ModelSpace.AddPoint(pt1)
On Error Resume Next 'to not crash if layer does not exist
If strname <> "no_name" Then
pointobj.Layer = strname
End If
End Sub

this new wordpress editor inserts too much html into the code.

### Like this:

Like Loading...

*Related*