📄 sincos.bas
字号:
'-----------------------------------------------------------------------
' math example for SIN, COS and TAN
' (c) 2000 MCS Electronics
'-----------------------------------------------------------------------
'This demo shows how to implement the SIN , COS and TAN functions
'They will be implemented later in ASM.
$large
Dim _s As Single , S1 As Single , S2 As Single , S3 As Single
_s = .1
Gosub Sin 'get SIN of _s
Print _s
_s = 0
Gosub Cos 'get COS of _s
Print _s
_s = 1
Gosub Tan
Print _s
_s = 1.1
Gosub Log
Print _s
_s = 1.1
Gosub Log10
Print _s
End
'sin function , assumes _s in radians
Sin:
S1 = _s
_s = _s * _s
S2 = _s
_s = _s * 0.01388888899236917 ' 1/72
_s = _s - 1
_s = _s * S2
_s = _s * 0.02380952425301075 '1/42
_s = _s + 1
_s = _s * S2
_s = _s * .05 '1/20
_s = _s - 1
_s = _s * S2
_s = _s * 0.1666666716337204 '1/6
_s = _s + 1
_s = _s * S1
Return
'cos function , assumes _s in radians
Cos:
_s = _s * _s 'angle squared
S1 = _s 'save
_s = _s * 0.01785714365541935 '1/56
_s = _s - 1
_s = _s * S1
_s = _s * 0.03333333507180214 '1/30
_s = _s + 1
_s = _s * S1
_s = _s * 0.0833333358168602 '1/12
_s = _s - 1
_s = _s * S1
_s = _s * .5 '1/2
_s = _s + 1
Return
'tan function , assumes _s in radians
Tan:
S3 = _s
Gosub Sin 'get sinus
S2 = _s 'store in s2
_s = S3 'get original value back
Gosub Cos
_s = S2 / _s
Return
Log:
Dim Ch As Byte
Dim J As Byte
S1 = _s - 1.0
S3 = S1
S2 = S1
Ch = 0
For J = 2 To 10 'increase J for better result
S2 = S2 * S1
S2 = S2 / J
If Ch.0 = 1 Then
S3 = S3 + S2
Else
S3 = S3 - S2
End If
Incr Ch
Next
_s = S3
Return
Log10:
Gosub Log
_s = _s * 0.43429
Return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -