
没有错,VB的三角函数计算的都是弧度,如果要计算角度需要转换一下。
比如:
Const PI=314159265
y=Sin(xPI/180)
另外,这里无需再用val函数了,因为sin函数返回的本来就是一个double类型的数值。
可以在sin前加math修饰限定,如下例在即时窗口输出sin(30)(此处30是角度,计算时要转换成弧度)
Const pi = 314159
DebugPrint(MathSin(30 pi / 180))
或在任何编程元素(如:Public Class Form1)声明之间加入
Imports SystemMath
一、反正切函数,高等数学的基本函数。arctan(1/2)=0463648=265651度。
二、正切函数y=tan x在(-π/2,π/2)上的反函数,叫做反正切函数。记作arctanx,表示一个正切值为x的角,该角的范围在(-π/2,π/2)区间内。定义域R,值域(-π/2,π/2)
三、
四、三角函数关系图
扩展资料
反三角函数(inverse trigonometric function)是一类初等函数。指三角函数的反函数。由于基本三角函数具有周期性,所以反三角函数是多值函数。这种多值的反三角函数包括:反正弦函数、反余弦函数、反正切函数、反余切函数、反正割函数、反余割函数,分别记为Arcsin x,Arccos x,Arctan x,Arccot x,Arcsec x,Arccsc x。
但是,在实函数中一般只研究单值函数,只把定义在包含锐角的单调区间上的基本三角函数的反函数,称为反三角函数,这是亦称反圆函数。为了得到单值对应的反三角函数,人们把全体实数分成许多区间,使每个区间内的每个有定义的 y 值都只能有惟一确定的 x 值与之对应。为了使单值的反三角函数所确定区间具有代表性,常遵循如下条件:
1、为了保证函数与自变量之间的单值对应,确定的区间必须具有单调性;
2、函数在这个区间最好是连续的(这里之所以说最好,是因为反正割和反余割函数是尖端的);
3、为了使研究方便,常要求所选择的区间包含0到π/2的角;
4、所确定的区间上的函数值域应与整函数的定义域相同。这样确定的反三角函数就是单值的,为了与上面多值的反三角函数相区别,在记法上常将Arc中的A改记为a,例如单值的反正弦函数记为arcsin x。
(参考资料 —— 反三角函数)
sin正弦函数,cos余弦函数,tan正切函数,cot余切函数 在直角三角形中,当平面上的三点A、B、C的连线,AB、AC、BC,构成一个直角三角形,其中∠ACB为直角。对∠BAC而言,对边(opposite)a=BC、斜边(hypotenuse)c=AB、邻边(adjacent)b=AC,
反三角函数是数学学习中一个很重要的知识点,下面整理了相关知识点和公式,希望能帮助到大家。
反三角函数的定义
设函数y=f(x)的定义域是A,值域是C.我们从式子y=f(x)中解出x得到式子x=φ(y).如果对于y在C中的任何一个值,通过式子x=φ(y),x在A中都有唯一的值和它对应,那么式子x=φ(y)叫函数y=f(x)的反函数,记作x=f-1(y),习惯表示为y=f-1(x)。注意:函数y=f(x)的定义域和值域,分别是反函数y=f-1(x)的值域和定义域。
例如:f(x)的定义域是[-1,+∞],值域是[0,+∞),它的反函数定义域为[0,+∞),值域是[-1,+∞)。
反三角函数公式余角关系
arcsin(x)+arccos(x)=π/2
arctan(x)+arccot(x)=π/2
arcsec(x)+arccsc(x)=π/2
负数关系
arcsin(-x)=-arcsin(x)
arccos(-x)=π-arccos(x)
arctan(-x)=-arctan(x)
arccot(-x)=π-arccot(x)
arcsec(-x)=π-arcsec(x)
arccsc(-x)=-arccsc(x)
反三角函数其他公式cos(arcsinx)=√(1-x^2)
arcsin(-x)=-arcsinx
arccos(-x)=π-arccosx
arctan(-x)=-arctanx
arccot(-x)=π-arccotx
arcsinx+arccosx=π/2=arctanx+arccotx
sin(arcsinx)=cos(arccosx)=tan(arctanx)=cot(arccotx)=x
当x∈[-π/2,π/2]有arcsin(sinx)=x
x∈[0,π],arccos(cosx)=x
x∈(-π/2,π/2),arctan(tanx)=x
x∈(0,π),arccot(cotx)=x
x>0,arctanx=π/2-arctan1/x,arccotx类似
若(arctanx+arctany)∈(-π/2,π/2),则arctanx+arctany=arctan((x+y)/(1-xy))
公式如下图:
复合反三角函数是实变量反三角函数在复数域中的推广,由此定义复变反正弦函数,同样地可定义复合反余弦函数和复变反正切函数。
初等复合函数是实变量初等函数在复数域中的推广。
在实函数中,常数函数、幂函数、指数函数、对数函数、三角函数、反三角函数这六类函数称为基本初等函数,而一切可由基本初等函数经过有限次四则运算和有限次复合生成的函数称为初等函数。
复合量的初等函数的定义形式上与初等函数相同,只不过它们的定义域已由实数集合推广到复数域中。
反三角函数性质:
反三角函数是一种基本初等函数。它是反正弦arcsin x,反余弦arccos x,反正切arctan x,反余切arccot x,反正割arcsec x,反余割arccsc x这些函数的统称,各自表示其反正弦、反余弦、反正切、反余切 ,反正割,反余割为x的角。
它并不能狭义的理解为三角函数的反函数,是个多值函数。三角函数的反函数不是单值函数,因为它并不满足一个自变量对应一个函数值的要求,其图像与其原函数关于函数 y=x 对称。欧拉提出反三角函数的概念,并且首先使用了“arc+函数名”的形式表示反三角函数。
反三角函数及性质
VIP免费 2020-09-04 2页 用App免费查看
y=arcsinx
函数y=sinx,x∈[-π/2,π/2]的反函数叫做反正弦函数,记作x=arcsiny
习惯上用x表示自变量,用y表示函数,所以反正弦函数写成y=arcsinx的形式
请注意正弦函数y=sinx,x∈R因为在整个定义域上没有一一对应关系,所以不存在反函数。
反正弦函数只对这样一个函数y=sinx,x∈[-π/2,π/2]成立,这里截取的是正弦函数靠近原点的一个单调区间,叫做正弦函数的主值区间。
理解 函数y=arcsinx中,y表示的是一个弧度制的角,自变量x是一个正弦值。这点必须牢记
性质
根据反函数的性质,易得函数y=arcsinx的,定义域[-1,1],值域[-π/2,π/2],是单调递增函数
图像关于原点对称,是奇函数
所以有arcsin(-x)=-arcsinx,注意x的取值范围:x∈[-1,1]
导函数:
,导函数不能取|x|=1
,
反正弦恒等式
sin(arcsinx)=x,x∈[-1,1] (arcsinx)'=1/√(1-x^2)
arcsinx=-arcsin(-x) arcsin(sinx)=x ,x属于[0,π/2]
arccosx
反三角函数中的反余弦。意思为:余弦的反函数,函数为y=arccosx,函数图像如右下图。
就是已知余弦数值,反求角度,如cos(a) = b,则arccos(b) = a;
它的值是以弧度表达的角度。定义域:-1,1。
由于是多值函数,往往取它的单值支,值域为0,π,记作y=arccosx,我们称它叫做反三角函数中的反余弦函数的主值,
arctan x
反三角函数中的反正切。意思为:tan(a) = b; 等价于 arctan(b) = a
定义域 :{x∣x∈R} , 值域 :y∈(-π/2,π/2)
计算性质:
tan(arctana)=a
arctan(-x)=-arctanx
arctan A + arctan B=arctan(A+B)/(1-AB)
arctan A - arctan B=arctan(A-B)/(1+AB)
反三角函数在无穷小替换公式中的应用:当x→0时,arctanx~x
数组是程序中经常要使用到的一种数据类型,Visual 中的数组,虽然语法结构等方面保留了和Visual Basic的很多相似之处,但也与Visual Basic存在着很多区别。其最大,也是各位Visual Basic程序员所最不能容忍的区别就是如下二点:
1 在Visual Basic Net中申明一个数组,其数组元素中的索引值的起点全部都为“0”,而不是以前Visual Basic中的索引值起点一般都为“1”。这种定义方法和Visual Basic Net的孪生姐妹Visual C#非常相似。
2 由于在Visual Basic Net中数组都有了统一的起点,所以在Visual Basic Net中定义一个数组,也就不再需要关键字“To”来设定数组的范围。这样在Visual Basic Net中申明一个数组将会比Visual Basic中要稍微简洁一点。关于数组定义将在后面详细介绍。
一.本节主要内容:
在接下来内容中,将结合具体示例来详细的介绍下列知识点:
1 申明数组,其中包括一维数组、多维数组,也包括静态数组和动态数组,及其初始化。和访问数组中的元素。
2 重新申明数组,即ReDim语句的使用用法,及其Preserve关键字的作用。
3 使用For Each Next语句来遍历数组中各个元素,For Each Next语句是 *** 作数据最为常用的一种语句,它能够方便的访问到数组中的每一个元素。
4 申明参数为数组的过程或者函数,由于数组是引用类型,所以在申明参数为数组的函数或过程时,处理方法与参数为值类型的函数或过程有点不一样。
5 简要介绍Array类和其主要的常用,以及通过Array类 *** 作数组的具体方法。
在Visual 申明一个数组使用的依然是Dim语句,其申明数组和Visual Basic的主要区别在上面内容中已经简单说过了。下面在Visual Basic Net申明一个长度为“3”的字符串数组,并对之进行初始化的代码:
Dim arrString ( 2 ) As String = {"星期一","星期二","星期三"}
下面代码是申请一个2×2的二维字符串数组,并对之进行初始化:
Dim arrDate ( 1, 1 ) As String = {{"星期一", "18号"}, {"星期二", "19号"}}
静态数组和动态数组的区别就在于静态数组的长度是固定的,而动态数组的长度是不固定的。上面的申明的二个数组就是静态数组,而下面二段代码的作用就是分别申明一个一维数组和二维数组,并对它们进行初始化:
Dim arrString ( ) As String = {"星期一","星期二","星期三"}
'申明一个动态的一维数组,并初始化
Dim arrDate ( , ) As String = {{"星期一", "18号"}, {"星期二", "19号"}}
'申明一个动态的二维数组,并初始化
对其他数据类型和更多维数的数组,其申明和初始化方法和上面的基本差不多,只需根据数组的维数和数据类型的不同进行相应的修改就可以了。
当数组申明和初始化以后,就可以通过元素在数组中对应的索引值来访问,下面二段代码分别是访问上面申明并初始化的一维数组和二维数组中的一个元素:
Dim sTemp1 As String = arrString ( 1 )
'访问arrString数组中的第2个元素
Dim sTemp2 As String = arrDate ( 1 , 1 )
'访问arrDate数组中的第二行、第二列元素
三.重新申明数组:
在Visual Basic Net重新申明数组和Visual Basic中基本类似,依然使用的是ReDim语句。在Visual Basic Net中使用ReDim语句要注意以下三点:
1 ReDim语句仅可以在过程级出现。这意味着不可以在类或模块级代码区使用ReDim语句来重新申明数组。
2 ReDim语句只是更改已被正式声明的数组的一个或多个维度的大小,但不能更改该数组的维数。
3 ReDim语句无法更改数组中元素的数据类型,和Dim语句申明数组的区别在于无法在ReDim语句中初始化重新申明的数组。
在使用ReDim重新申明数组时,最为常见的关键字就是“Preserve”。“Preserve”的作用是表明在重新申明数组时,是否要在重新申明的数组中复制原数组中的元素。请比较下面二段代码:
代码一:
Dim arrString ( 2 ) As String = {"星期一","星期二","星期三"}
ReDim Preserve arrString ( 4 )
'重新申明arrString数组,数组的长度改为5,并且在新数组中复制原数组的元素
arrString ( 3 ) = "星期四"
arrString ( 4 ) = "星期五"
代码二:
Dim arrString ( 2 ) As String = {"星期一","星期二","星期三"}
ReDim arrString ( 4 )
'重新申明arrString数组,数组的长度改为5,并不往新数组中复制原数组的元素
arrString ( 0 ) = "星期一"
arrString ( 1 ) = "星期二"
arrString ( 2 ) = "星期三"
arrString ( 3 ) = "星期四"
arrString ( 4 ) = "星期五"
通过比较上述二段代码,可见,在第一段代码中由于ReDim中使用了Preserve关键字,所以在重新申明数组时,就在新数组中复制了原数组的元素,这样就只需要对其中的二个元素进行初始化;而第二段由于没有使用Preserve关键字,就没有在新数组中带入原数组中的任何元素,所以对数组的所有元素都进行初始化。通过比较相信您对重新定义数组和“Preserve”关键字的使用有了更深的理解。
用Photoshop给漂亮的烫发MM抠图
Photoshop透明婚纱抠图大法
Photoshop:让MM做个“变色龙”
用Photoshop来制作一款精美的宝宝照片墙
Photoshop绝色美女通道抠图法
用Photoshop教你打造绚丽光芒效果
For Each Next语句好像只是为二种数据类型专门度身定做的,其一就是集合,另外一个就是数组了。通过For Each Next语句,可以十分方便的访问数组中的任一元素。请仔细分析一下下列代码:
Dim arrString ( 2 ) As String = {"星期一","星期二","星期三"}
Dim Temp As String
For Each Temp In arrString
If Temp = "星期三" Then
MsgBox ( "在数组中寻找到""星期三""字符串")
Exit For
'退出For Each Next语句
End If
Next
上面代码的功能是通过For Each Next语句访问arrString数组中各元素,如果发现有元素为字符串“星期三”,则d出提示框,并退出循环。
同样用For Next语句也能够实现上面同样的功能,只是感觉有点不专业,并且有点繁琐,下面代码是用For Next语句实现上面For Each Next语句同等功能的代码:
Dim i As Integer
For i = 0 To myStringLength - 1
If arrString ( i ) = "星期三" Then
MsgBox ( "在数组中寻找到""星期三""字符串" )
Exit For
End If
Next
五.申明参数为数组的过程或者函数:
由于数组为引用类型,所以如果以数组为参数过程和函数在定义时候就要多加以注意,下面代码是在Visual 申明一个参数为数组的过程的典型代码,可见在调用数组类型之前多了一个关键字“ByVal”,“ByVal”关键字的作用在于在下面调用的过程中的不能更改数组的数值:
Sub DisplayArray ( ByVal myString ( ) As String )
End Sub
六.简要介绍SystemArray类及其成员:
Array类是一个基类,是公共语言运行库中所有数组的基类。它提供了创建、 *** 作、搜索和排序数组的方法。数组中任一个元素就是Array中的一个值。Array的长度是它可包含的元素总数。Array的秩是Array中的维数。Array中维度的下限是Array 中该维度的起始索引,多维Array的各个维度可以有不同的界限。表01和表02分别是Array类的常用属性和常用方法及其说明:
属性 说明
IsFixedSize 获取指示Array是否具有固定大小的值。
IsReadOnly 获取指示Array是否为只读的值。
Length 获取Array的所有维度中的元素总数。
Rank 获取Array的秩(也就是维数)。
表01:SystemArray类的常用属性及其说明
方法 说明
BinarySearch 使用二进制搜索算法在一维的排序Array中搜索值。
Clear 将Array中的一系列元素设置为零、false或空引用(即:Nothing),具体 *** 作时设定值取决于元素类型。
Copy 将一个Array的一部分复制到另一个Array中,并根据需要执行强制类型转换和装箱。
CopyTo 将当前一维Array的所有元素复制到指定的一维Array中(从指定的目标Array索引开始)。
GetLength 获取Array的指定维度中的元素数。
GetLowerBound 获取Array中指定维度的下限。
GetUpperBound 获取Array的指定维度的上限。
GetValue 获取当前Array中指定元素的值。
LastIndexOf 返回一维Array或部分Array中某个值的最后一个匹配项的索引。
Reverse 反转一维Array或部分Array中元素的顺序。
SetValue 将当前Array中的指定元素设置为指定值。
Sort 对一维Array对象中的元素进行排序。
表02:SystemArray类的常用方法及其说明
下面介绍的示例的功能包含了数组的申明、初始化、重新申明、重新初始化、数组中各元素的排序、数组的遍历、查找以及以数组为参数的过程的定义及调用方法等。下面是此示例实现的具体步骤:
1 启动Visual Studio Net。
2 选择菜单文件|新建|项目后,d出新建项目对话框。
3 将项目类型设置为Visual Basic项目。
4 将模板设置为Windows应用程序。
5 在名称文本框中输入数组。
6 在位置的文本框中输入项目,然后单击确定按钮,这样在“项目”目录中就产生了名称为“数组”的文件夹,并在里面创建了名称为数组的项目文件。
7 把Visual Studio Net的当前窗口切换到Form1vb(设计)窗口,并从工具箱中的Windows窗体组件选项卡中往Form1窗体中拖入下列组件,并执行相应 *** 作:
四个Button组件,分别用来创建一个“创建一维数组”、创建“创建二维数组”、实现对“对一维数组排序”和实现“重定义一维数组”。并在这四个Button组件拖入Form1的设计窗体后,分别双击这四个组件,这样系统会在Form1vb文件分别产生这四个组件的Click时间对应的处理代码。
一个ListBox组件,用来显示创建的一维数组的内容。
8 按照表03中数值来设定设定组件的主要属性:
组件类型 组件名称 属性 设置结果
Form Form1 Text 数组篇
Form1 MaximizeBox False
Form1 MinimizeBox False
Form1 FormBorderStyle FixedSingle
ListBox ListBox1 ItemHeight 12
ListBox1 Location Point ( 28 , 169 )
ListBox1 Size Size ( 246 , 136 )
Button Button1 Text 创建一维数组
Button1 FlatStyle Flat
Button2 Text 创建二维数组
Button2 FlatStyle Flat
Button3 Text 对一维数组排序
Button3 FlatStyle Flat
Button4 Text 重定义一维数组
Button4 FlatStyle Flat
数组项目窗体中各组件的主要属性设定数值表
并按照图01中各组件的位置、大小和排列方式来调整窗体中各个组件:
9 把Visual Studio Net的当前窗口切换到Form1vb,进入Form1vb文件的编辑界面。然后用下列的代码替换Form1vb中Button1组件的Click事件对应的处理代码,下列代码的功能是通过创建输入对话框来创建一个一维数组:
Private Sub Button1_Click ( ByVal sender As SystemObject , ByVal e As SystemEventArgs ) Handles Button1Click
Dim i As Integer
For i = 0 To 3
arrString ( i ) = InputBox ( "请在下面文本框中输入字符串" , "请输入字符串 , 来初始化创建的一维数组!" , "Item " i )
Next
Button3Enabled = True
Button4Enabled = True
DisplayArray ( arrString )
End Sub
10 用下列的代码替换Form1vb中Button2组件的Click事件对应的处理代码,下列代码的功能是创建一个二维数组,并进行初始化:
Private Sub Button2_Click ( ByVal sender As SystemObject , ByVal e As SystemEventArgs ) Handles Button2Click
Dim arrDate ( , ) As String = {{"星期一" , "18号"} , {"星期二" , "19号"}}
'创建一个二维数组,并初始化
MsgBox ( arrDate ( 0 , 1 ) )
'访问这个二维数组中的元素
End Sub
11 用下列的代码替换Form1vb中Button3组件的Click事件对应的处理代码,下列代码的功能是首先定义一个名称为“DisplayArray”的过程,此过程能够对给定的一维数组中的数据进行排序,并通过ListBox显示出来。其次是定义Button3的Click事件,在此事件中对调用DisplayArray过程,对一维数组中的数据进行排序:
'定义一个过程,过程的功能是通过ListBox组件显示给定的字符串数组中各元素
Sub DisplayArray ( ByVal myString ( ) As String )
ListBox1ItemsClear ( )
Dim Temp As String
For Each Temp In myString
ListBox1ItemsAdd ( Temp )
Next
End Sub
Private Sub Button3_Click ( ByVal sender As SystemObject , ByVal e As SystemEventArgs ) Handles Button3Click
ArraySort ( arrString )
DisplayArray ( arrString )
End Sub
12 用下列的代码替换Form1vb中Button4组件的Click事件对应的处理代码,下列代码的功能是重新定义一维数组:
Private Sub Button4_Click ( ByVal sender As SystemObject , ByVal e As SystemEventArgs ) Handles Button4Click
ReDim Preserve arrString ( 5 )
'请注意Preserve关键字的作用
Dim i As Integer
For i = 4 To 5
arrString ( i ) = InputBox ( "请在下面文本框中输入字符串" , "请输入字符串 , 来初始化重新创建的一维数组!" , "Item " i )
Next
DisplayArray ( arrString )
End Sub
13 保存上面的所有修改,至此数组项目的全部工作就完成了。此时单击快捷键F5运行程序,图02、图03是程序编译后的运行界面:
图03:对一维数组中的各元素进行排序后的界面
八.总结:
本文首先介绍了Visual Basic Net中的数组和原先版本的Visual Basic中的区别,在Visual Basic Net中数组从内涵上更像Visual C#。其次介绍了数组的申明方法,其中包括一维数组、多维数组,也包括静态数组和动态数组,初始化数组,及其访问数组中的元素。接着介绍了重新申明数组方法,即ReDim语句的使用用法,及其Preserve关键字的作用。以及使用For Each Next语句来遍历数组中各个元素,For Each Next语句是 *** 作数据最为常用的一种语句,它能够方便的访问到数组中的每一个元素。比用For Next语句要方便了许多。最后介绍在以数组为参数的过程和函数的调用方法,和Array类和其主要的使用方法。之所以提出来介绍以数组为参数的过程和函数的调用方法,是因为数组是引用类型,所以在申明参数为数组的函数或过程时,处理方法与参数为值类型的函数或过程有点不一样。Array是Net FrameWorkSDK中提供用来 *** 作数组的类,本文主要是介绍利用Array类 *** 作数组的具体方方法法。以上就是本文的主要内容,相信仔细阅读并进行相应练习的读者一定已经掌握了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)