[从头学数学] 第162节 锐角三角函数

来源:互联网 发布:网络大学是什么 编辑:程序博客网 时间:2024/05/24 01:16
剧情提要:
[机器小伟]在[工程师阿伟]的陪同下进入了筑基后期的修炼,
这次要修炼的目标是[锐角三角函数]。

正剧开始:
星历2016年04月05日 10:20:54, 银河系厄尔斯星球中华帝国江南行省。

[工程师阿伟]正在和[机器小伟]一起研究[锐角三角函数]。






这座塔真的很壮观,不知现在还是否允许游客上去观光。







<span style="font-size:18px;">if (1) {config.setSector(1,1,1,1);var r = 20;config.graphPaper2D(0, 0, r);config.axis2D(0, 0, 180);//绘制三角形var triangle = new Triangle();var array = triangle.know2edges([10, 6], -90);var scale = r;shape.angleDraw([].concat(array), 'red', scale, 'ABC');//求角的三角函数值var angle = 36.87 / 180*Math.PI;var sinA = Math.sin(angle), cosA = Math.cos(angle), tanA = Math.tan(angle);//打印结果var x = -200, y = -170;var result = [];result.push(['sinA = ', sinA]);result.push(['cosA = ', cosA]);result.push(['tanA = ', tanA]);for (var i = 0; i < 3; i++) {plot.fillText(result[i][0]+result[i][1].toFixed(3), x, y, 100);y += 30;}}</span>



<span style="font-size:18px;">//第1题if (1) {config.setSector(1,1,1,1);var r = 20;config.graphPaper2D(0, 0, r);config.axis2D(0, 0, 180);//绘制三角形var triangle = new Triangle();var array = triangle.know2edges([13, 12], -90);var scale = r;shape.angleDraw([].concat(array), 'red', scale, 'BAC');//求角的三角函数值var angle = 22.62 / 180*Math.PI;var sinA = Math.sin(angle), cosA = Math.cos(angle), tanA = Math.tan(angle);//打印结果var x = -200, y = -170;var result = [];result.push(['sinA = ', sinA]);result.push(['cosA = ', cosA]);result.push(['tanA = ', tanA]);for (var i = 0; i < 3; i++) {plot.fillText(result[i][0]+result[i][1].toFixed(3), x, y, 100);y += 30;}//求角的三角函数值angle = Math.PI/2- angle;sinA = Math.sin(angle);cosA = Math.cos(angle);tanA = Math.tan(angle);//打印结果x = -200, y = 30;result = [];result.push(['sinB = ', sinA]);result.push(['cosB = ', cosA]);result.push(['tanB = ', tanA]);for (var i = 0; i < 3; i++) {plot.fillText(result[i][0]+result[i][1].toFixed(3), x, y, 100);y += 30;}}</span>



<span style="font-size:18px;">if (1) {config.setSector(1,1,1,1);var r = 20;config.graphPaper2D(0, 0, r);config.axis2D(0, 0, 180);//绘制三角形var triangle = new Triangle();var array = triangle.know2edges([2, 3], 90);var scale = 3*r;shape.angleDraw([].concat(array), 'red', scale, 'ACB');//求角的三角函数值var angle = 56.31 / 180*Math.PI;var sinA = Math.sin(angle), cosA = Math.cos(angle), tanA = Math.tan(angle);//打印结果var x = -200, y = -170;var result = [];result.push(['sinA = ', sinA]);result.push(['cosA = ', cosA]);result.push(['tanA = ', tanA]);for (var i = 0; i < 3; i++) {plot.fillText(result[i][0]+result[i][1].toFixed(3), x, y, 100);y += 30;}//求角的三角函数值angle = Math.PI/2- angle;sinA = Math.sin(angle);cosA = Math.cos(angle);tanA = Math.tan(angle);//打印结果x = -200, y = 30;result = [];result.push(['sinB = ', sinA]);result.push(['cosB = ', cosA]);result.push(['tanB = ', tanA]);for (var i = 0; i < 3; i++) {plot.fillText(result[i][0]+result[i][1].toFixed(3), x, y, 100);y += 30;}}</span>




<span style="font-size:18px;">>>> import math;>>> math.sin(18)-0.750987246771676>>> math.sin(18/180*math.pi)0.3090169943749474>>> math.tan(30.6/180*math.pi)0.5913983513994712</span>


<span style="font-size:18px;">>>> math.asin(0.5018);0.5256784866432485>>> _*180/math.pi30.119158665482352>>> a = _;>>> (a-math.floor(a))*60;7.149519928941146>>> b = _;>>> (b-math.floor(b))*60;8.971195736468758</span>



为了方便以后的计算,阿伟制作了一件法器:

<span style="font-size:18px;">#### @usage   三角函数调用封装# @author  mw# @date    2016年04月05日  星期二  09:36:50 # @param# @return####def triFun():    #需要计算的任务    #输入量为角度制,依次为度,分,秒    #可输出显示度、分、秒的表达式    #用于计算锐角三角函数    #对于角度变换,还没有经过测试    #以后可扩展添加其它多种数学函数    task = [        ['sin', 20],        ['cos', 70],        ['sin', 35],        ['cos', 55],        ['sin', 15, 32],        ['cos', 74, 28],        ['tan', 3, 8],        ['tan', 80, 25, 43],        ['asin', 0.6275],        ['asin', 0.0547],        ['acos', 0.6252],        ['acos', 0.1659],        ['atan', 4.8425],        ['atan', 0.8816],        ['sin', 18],        ['tan', 30, 36],        ['asin', 0.5018]        ];    size = len(task);    result = [];    import math;    for i in range(size):                if task[i][0] == 'sin' or task[i][0] == 'cos' or task[i][0] == 'tan' \           or task[i][0] == 'cot':            size_1 = len(task[i]);            angle = 0;            if size_1 == 2:                angle = task[i][1];            elif size_1 == 3:                angle = task[i][1]+task[i][2]/60;            elif size_1 == 4:                angle = task[i][1]+task[i][2]/60+task[i][3]/3600;            angle = angle/180*math.pi;            if task[i][0] == 'sin':                s = '';                if size_1 == 2:                    s = task[i][0]+str(task[i][1])+'°';                elif size_1 == 3:                    s = task[i][0]+str(task[i][1])+'°'+str(task[i][2])+'\'';                elif size_1 == 4:                    s = task[i][0]+str(task[i][1])+'°'+str(task[i][2])+'\''+str(task[i][3])+'″';                s += ' = ';                s += str(round(math.sin(angle), 3));                s += '\n';                result.append(s);            elif task[i][0] == 'cos':                s = '';                if size_1 == 2:                    s = task[i][0]+str(task[i][1])+'°';                elif size_1 == 3:                    s = task[i][0]+str(task[i][1])+'°'+str(task[i][2])+'\'';                elif size_1 == 4:                    s = task[i][0]+str(task[i][1])+'°'+str(task[i][2])+'\''+str(task[i][3])+'″';                s += ' = ';                s += str(round(math.cos(angle), 3));                s += '\n';                result.append(s);            elif task[i][0] == 'tan':                s = '';                if size_1 == 2:                    s = task[i][0]+str(task[i][1])+'°';                elif size_1 == 3:                    s = task[i][0]+str(task[i][1])+'°'+str(task[i][2])+'\'';                elif size_1 == 4:                    s = task[i][0]+str(task[i][1])+'°'+str(task[i][2])+'\''+str(task[i][3])+'″';                s += ' = ';                s += str(round(math.tan(angle), 3));                s += '\n';                result.append(s);            elif task[i][0] == 'cot':                s = '';                if size_1 == 2:                    s = task[i][0]+str(task[i][1])+'°';                elif size_1 == 3:                    s = task[i][0]+str(task[i][1])+'°'+str(task[i][2])+'\'';                elif size_1 == 4:                    s = task[i][0]+str(task[i][1])+'°'+str(task[i][2])+'\''+str(task[i][3])+'″';                s += ' = ';                s += str(round(1/math.tan(angle), 3));                s += '\n';                result.append(s);        else:            if task[i][0] == 'asin':                s = '';                s = task[i][0]+str(task[i][1])+' = ';                res = math.asin(task[i][1])/math.pi*180;                if res < 0:                    s += '-';                absres = abs(res);                s += str(math.floor(absres))+'°'+str(math.floor(absres*60)%60)+'\''+str(round(absres*3600)%60)+'″';                s += '\n';                result.append(s);            elif task[i][0] == 'acos':                s = '';                s = task[i][0]+str(task[i][1])+' = ';                res = math.acos(task[i][1])/math.pi*180;                if res < 0:                    s += '-';                absres = abs(res);                s += str(math.floor(absres))+'°'+str(math.floor(absres*60)%60)+'\''+str(round(absres*3600)%60)+'″';                s += '\n';                result.append(s);            elif task[i][0] == 'atan':                s = '';                s = task[i][0]+str(task[i][1])+' = ';                res = math.atan(task[i][1])/math.pi*180;                if res < 0:                    s += '-';                absres = abs(res);                s += str(math.floor(absres))+'°'+str(math.floor(absres*60)%60)+'\''+str(round(absres*3600)%60)+'″';                s += '\n';                result.append(s);            elif task[i][0] == 'acot':                s = '';                s = task[i][0]+str(task[i][1])+' = ';                res = 90-math.atan(task[i][1])/math.pi*180;                if res < 0:                    s += '-';                absres = abs(res);                s += str(math.floor(absres))+'°'+str(math.floor(absres*60)%60)+'\''+str(round(absres*3600)%60)+'″';                s += '\n';                result.append(s);                            else:                pass;                size = len(result);    for i in range(size):        print(result[i]);        if __name__ == '__main__':    triFun();</span>

这样就可以很快得到所有结果:

<span style="font-size:18px;">>>> sin20° = 0.342cos70° = 0.342sin35° = 0.574cos55° = 0.574sin15°32' = 0.268cos74°28' = 0.268tan3°8' = 0.055tan80°25'43″ = 5.93asin0.6275 = 38°51'57″asin0.0547 = 3°8'8″acos0.6252 = 51°18'11″acos0.1659 = 80°27'2″atan4.8425 = 78°19'56″atan0.8816 = 41°23'58″sin18° = 0.309tan30°36' = 0.591asin0.5018 = 30°7'9″</span>








<span style="font-size:18px;">//例1if (1) {config.setSector(1,1,1,1);var r = 20;config.graphPaper2D(0, 0, r);config.axis2D(0, 0, 180);//绘制三角形var triangle = new Triangle();var array = triangle.know2edges([Math.sqrt(6), Math.sqrt(2)], 90);var scale = 3*r;shape.angleDraw([].concat(array), 'red', scale, 'BCA');//求角的三角函数值var angle = 60 / 180*Math.PI;var sinA = Math.sin(angle), cosA = Math.cos(angle), tanA = Math.tan(angle);//打印结果var x = -200, y = -170;var result = [];result.push(['sinA = ', sinA]);result.push(['cosA = ', cosA]);result.push(['tanA = ', tanA]);for (var i = 0; i < 3; i++) {plot.fillText(result[i][0]+result[i][1].toFixed(3), x, y, 100);y += 30;}//求角的三角函数值angle = Math.PI/2- angle;sinA = Math.sin(angle);cosA = Math.cos(angle);tanA = Math.tan(angle);//打印结果x = -200, y = 30;result = [];result.push(['sinB = ', sinA]);result.push(['cosB = ', cosA]);result.push(['tanB = ', tanA]);for (var i = 0; i < 3; i++) {plot.fillText(result[i][0]+result[i][1].toFixed(3), x, y, 100);y += 30;}}</span>



<span style="font-size:18px;">//例2if (1) {config.setSector(1,1,1,1);var r = 20;config.graphPaper2D(0, 0, r);config.axis2D(0, 0, 180);//绘制三角形var triangle = new Triangle();//此处两角分别为B, A,即第三、一两顶点,边则是AC, 即一、二两顶点var array = triangle.know2angles([35, 55], 20);var scale = r/4;shape.angleDraw([].concat(array), 'red', scale, 'ACB');//求角的三角函数值var angle = 55 / 180*Math.PI;var sinA = Math.sin(angle), cosA = Math.cos(angle), tanA = Math.tan(angle);//打印结果var x = -200, y = -170;var result = [];result.push(['sinA = ', sinA]);result.push(['cosA = ', cosA]);result.push(['tanA = ', tanA]);for (var i = 0; i < 3; i++) {plot.fillText(result[i][0]+result[i][1].toFixed(3), x, y, 100);y += 30;}//求角的三角函数值angle = Math.PI/2- angle;sinA = Math.sin(angle);cosA = Math.cos(angle);tanA = Math.tan(angle);//打印结果x = -200, y = 30;result = [];result.push(['sinB = ', sinA]);result.push(['cosB = ', cosA]);result.push(['tanB = ', tanA]);for (var i = 0; i < 3; i++) {plot.fillText(result[i][0]+result[i][1].toFixed(3), x, y, 100);y += 30;}}</span>



<span style="font-size:18px;">//神舟飞船if (1) {config.setSector(1,1,1,1);var r = 20;config.graphPaper2D(0, 0, r);config.axis2D(0, 0, 180);//绘制三角形var triangle = new Triangle();//此处两边分别为FO,即第一二两顶点,OQ, 即二三两顶点,直角为Qvar array = triangle.know2edges([6400+343, 6400], -90);var scale = 0.035;shape.angleDraw([].concat(array), 'red', scale, 'FOQ');//求角的三角函数值var angle = 18.35 / 180*Math.PI;var sinA = Math.sin(angle), cosA = Math.cos(angle), tanA = Math.tan(angle);//打印结果var x = -200, y = -170;var result = [];result.push(['sinA = ', sinA]);result.push(['cosA = ', cosA]);result.push(['tanA = ', tanA]);for (var i = 0; i < 3; i++) {plot.fillText(result[i][0]+result[i][1].toFixed(3), x, y, 100);y += 30;}//求角的三角函数值angle = Math.PI/2- angle;sinA = Math.sin(angle);cosA = Math.cos(angle);tanA = Math.tan(angle);//打印结果x = -200, y = 30;result = [];result.push(['sinB = ', sinA]);result.push(['cosB = ', cosA]);result.push(['tanB = ', tanA]);for (var i = 0; i < 3; i++) {plot.fillText(result[i][0]+result[i][1].toFixed(3), x, y, 100);y += 30;}y += 50;plot.fillText('A => O , B => Q', x, y, 150);}>>> 18.35/180*3.142*64002049.9804444444444</span>



本节到此结束,欲知后事如何,请看下回分解。

0 1
原创粉丝点击