标签归档:数学

离散的概念

离散 算法
hash 算法
离散数学是传统的逻辑学,集合论(包括函数),数论基础,算法设计,组合分析,离散概率,关系理论,图论与树,抽象代数(包括代数系统,群、环、域等),布尔代数,计算模型(语言与自动机)等汇集起来的一门综合学科。离散数学的应用遍及现代科学技术的诸多领域。
数学模型
是将现实生活中的现象用数据语言表示出来,供数学分析,分析其以后的轨迹和变化,
建立数学模型的目的就是让数学应用到生活中,让数学为我们的生活提供便利。

三角函数之箭头绘制-HTML应用

由于项目中需要采用html5绘制箭头,查阅所有的html5方法,发现只有lineTo方法,所以决定采用lineTo画线方法来绘制一条直线的箭头
箭头”–>”:是由一条直线向左右各旋转一个相同的角度就形成了箭头,这里我们需要计算直线旋转后的坐标,所以我们需要用到三角函数[三角函数:两条关联的直线(a,b)所形成的直角三角形中a与b的关系]如图所示

1 三角函数简介:
绘制直角三角形如图所示 a^2 +b^2 =c^2;
sanJiaoXing
从图中我们可以看见角∠ACB,角∠ABC,角∠CAB
针对角A 我们来求三角函数的值
sin(A) = a/c
cos(A) = b/c
tan(A) = a/b;
cot(A) = b/a;
从上面的公式中我们可以看出 以上四个三角函数 相互的之间的关系为
tan =1/cot;
sin^2(A)+cos^2(A)=1;
sin(A) = [1-cos^2(A)]开方;
2 javascript中三角函数的方法简介?
Math.E 自然对数的底(为常数) 2.718
Math.LN10 10的自然对数 2.302
Math.LN2 2的自然对数 0.693
Math.PI 圆周率 3.1415
Math.SQRT1_2 1/2的平方根 0.707
Math.SQRT2 2的平方根 1.414
Math.sqrt(x) X的平方根 更X的值有关
Math.pow(x, n) 返回x的n次方的数值 参数为x和n
Math.log(n) 返回n的自然对数 参数为n
Math.exp(n) 返回e的n次方的数值 参数为n
三角函数
Math.cos(x) X的余弦函数
Math.sin(x) X的正弦函数
Math.tan(x) X的正切函数
Math.acos(y) X的反余弦函数
Math.asin(y) X的反正弦函数
Math.atan(y) X的反正切函数
这里注意:参数x和以及反函数的返回数值的单位都为弧度(比如 PI弧度=180度)
舍入函数和随机数字
Math.random() 产生从0到1的随机数
Math.round(x) 取最接近整数x的数值
Math.floor(x) 取最接近整数x并且比x小的数值
Math.ceil(x) 取最接近整数x并且比x大的数值
Math.min(a, b, c) 返回参数列表中最小的数值
Math.max(a, b, c) 返回参数列表中最大的数值

3 绘制圆 根据直角的关系 介绍如何计算坐标,如何确定箭头
jiantouyuanJiao
根据上图的圆和三角函数知识,
首先我们绘制一条直线,然后将html5中对象的坐标系统(0,0)旋转的同绘制的直线在同一X轴上
如下图代码:
< !DOCTYPE html >
< html>
< head>
< script type="text/javascript" >
function drawLineAndArrow(divId,ox,oy,startX,startY,endX,endY)
{
//参数:divId的 id ox,oy原点坐标 startX,startY开始坐标 endX,endY线终止坐标
var start= new Array(startX,startY);
var end= new Array(endX,endY);

var objId= document.getElementById(divId);
if(objId== null)return false;
var objCanvas= objId.getContext(‘2d’);
//画线
objCanvas.beginPath();
objCanvas.translate(ox,oy,0); //坐标源点
objCanvas.moveTo(start[0],start[1]);
objCanvas.lineTo(end[0],end[1]);
objCanvas.fill();
objCanvas.stroke();

//画箭头
objCanvas.translate(end[0],end[1]);
//我的箭头本垂直向下,算出直线偏离Y的角,然后旋转 ,rotate是顺时针旋转的,所以加个负号
var t=(end[0]-start[0])/(end[1]-start[1]);
t=Math.atan(atg);
if(end[1]-start[1] >= 0){
objCanvas.rotate(-t);
}else{
objCanvas.rotate(Math.PI-t);
}
objCanvas.lineTo(-5,-10);
objCanvas.lineTo(0,-5);
objCanvas.lineTo(5,-10);
objCanvas.lineTo(0,0);
objCanvas.fill(); //箭头是个封闭图形
objCanvas.closePath();
}

drawLineAndArrow(“showDrawPic”,0,0,0,0,300,100);
< /script>
< /head>
< body>
< canvas id="showDrawPic" width="900" height="800">
< /body>
< /html>