You've probably seen this shape before. It is several straight lines whose outline seems to be curved. Connect the following pairs of points with segments:
(1,0) and (0,8)
(2,0) and (0,7)
(3,0) and (0,6)
...
(8,0) and (0,1)
The 8 segments seem to form the outline a curve, but what curve? Is it a circle or maybe one branch of a hyperbola? Some other conic? Does it's equation have some other nice form?
The program below expands the value range to get a fuller picture of the shape beyond the short arc between the tangencies to the axes. It also extends the line segments beyond stopping at the axes.
It looks like a parabola open towards the "northeast", that is, something like y=x^2 rotated 45° clockwise. But it could just as easily be something like y=x^4 thus tilted, or even |y|^a where a is any value above 1. A more detailed analysis of this envelope is needed.
It does not seem to be one scrunched nappe of a hyperbola, as I don't think there are lines to which the curve is asymptotic.
The curve goes through or close to (4,25). Rotated 90° CCW, it goes to (-14.85,20.51)--rounding to nearest .01. That in itself doesn't tell us the power in |y|^a, or more precisely b*|y|^a. So next we can look at point (9,36); rotated that's (-19.09,31.82).
Further we must bring the vertex of the putative parabola down to the origin. The vertex of the unrotated figure seems to be at 2.2,2.2, so the distance from the origin is 2.2 * sqrt(2).
The normalized rotated coordinates therefore are:
(4,25) --> (-14.85,17.39)
(9,36) --> (-19.09,28.71)
The x coordinate changes by a factor of 19.09/14.85 = 1.286.
The y coordinate changes by a factor of 28.71/17.39 = 1.651.
Dividing the logs of these numbers, the power value, a, comes out to 1.996. Given possible estimation and rounding errors, this seems close enough to 2 to call the figure a parabola.
Graph created by:
DefDbl A-Z
Dim crlf$
Private Sub Form_Load()
Form1.Visible = True
crlf = Chr$(13) + Chr$(10)
Me.ScaleMode = vbCentimeters
For i = -10 To 60
If i = 0 Then DrawWidth = 3 Else If i Mod 10 = 0 Then DrawWidth = 2 Else DrawWidth = 1
Me.Line (0, screeny(i))-(35, screeny(i)), RGB(60, 200, 60)
Me.Line (screenx(i), 0)-(screenx(i), 30), RGB(60, 200, 60)
Next
DrawWidth = 1
For i = -20 To 40
Me.Line (screenx(2 * i), screeny(i - 9))-(screenx(-i), screeny(2 * (9 - i))), 0
Next
End Sub
Function screenx(x)
screenx = x / 2 + 1
End Function
Function screeny(y)
screeny = 19 - y / 2
End Function
The rotation and translation were done by:
Input "x",x
Input "y",y
r=Sqrt(x*x+y*y)
Degree
If x<>0 Then
th=ATan(y/x)
Else
th=Sign(y)*2*ATan(1)
Endif
Print x,y
Print r,th,"deg"
th=th+45
x=r*Cos(th)
y=r*Sin(th)
Print x,y
Print r,th,"deg"
y=y-2.2*sqrt(2)
Print x,y
Print r,th,"deg"
(Mintoris Basic, for Android)
|
Posted by Charlie
on 2017-04-19 14:09:46 |