2019-11-04 20:24:02
余弦定理如下,三角函数中6个必须掌握的公式,这是第3个。先来推导一下。如图4-1-1中,ΔABC中,已知∠A=60°,b=10,c=15,求a的长度。60°角的三边比是 1:2:√3以此可以求出e,h(1) e/b=cosA ∴ e=b*cosA (2) h/b=sinA ∴ h=b*sinA (3) d=c-e=c-b*cosA (4) a2=h2+d2 a2=(b*si...
2019-10-27 21:55:10
见下图,求三角形ΔABC的面积。 按三角形面积公式 (面积=底×高÷2。其中,a是三角形的底,h是底所对应的高)设底边b=20,经过顶点B作底边CA的垂直线,则点H就会落在CA的延长线上,BH就是三角形的高h,这和图3-1-2测量海拔高度是一样的。在做高h时,我们创建了一个三角形Δ由于h/c=sin40° ,得h=c*sin40° ∴ SΔABC= 1/2*b*h=1/2*20*18*sin40°...
2019-10-26 19:57:26
三角函数里有许多公式,需要牢牢记住的只有6个,其它的都是其的变形。证明公式(1): a2+b2=c2a2/c2+b2/c2=1(a/c)2+(b/c)2=1假设∠A=θ ,则a/c=sinθ, b/c=cosθ∴ sin2θ+cos2θ=1证明公式(2)利用60°度直角可以验证公式(2)tanθ=sinθ/cosθtan60°=sin60°/cos60°=(√3/2)/(1/2)=√3下面来证明...
2019-10-26 15:21:08
首先,我们先来看看这个数的倒数:其实矩阵的逆矩阵也跟倒数的性质一样,不过只是我们习惯用A-1表示:问题来了,既然是和倒数的性质类似,那为什么不能写成1/A?其实原因很简单,主要是因为矩阵不能被除。不过 1/8倒可以被写成 8-1。那矩阵的逆和倒数还有其他相似之处吗?当我们将一个数乘以它的倒数我们得到1。8 × (1/8) = 1当一个矩阵乘以逆时,我们得到了单位矩阵(而单位矩阵,其实也就是矩阵中的...
2019-10-25 21:34:18
特殊三角形的sin,cos和tan内角为30°,45°,60° 的特殊三角形,其三角比如下:sin, cos, tan的一些规律解题如下题。如果只是算一算x,y是多少没多少意思。勇哥用halcon的算子来画出题意并解题。下面的代码中,我们把c=20改为c=200,这样屏幕上的线条长一点方便观察。dev_close_window()
dev_open_window(0, 0, 400, 400,...
2019-10-24 22:58:06
这个证明三平方定理的方式比较巧妙,勇哥用autocad画了个示意图。大正方形的面积C2= 四个直角的面积+ 小矩形的面积结果就是: c2=b2+a2AutoCAD是个好东西,勇哥可以直接在屏幕上测量直角三角形的a边与b边,结果如下:距离 = 82.9038,XY 平面中的倾角 = 34, 与 XY 平面的夹角 = 0
距离 = 55.9193,XY 平面中的倾角 = 304, 与 XY...
2019-10-24 15:18:19
勇哥继续谈谈绕任意点的旋转。绕原点的旋转是二维旋转最基本的情况,当我们需要进行绕任意点旋转时,我们可以把这种情况转换到绕原点的旋转,思路如下: 1. 首先将旋转点移动到原点处 2. 执行如2所描述的绕原点的旋转 3. 再将旋转点移回到原来的位置 (图1)勇哥根据上述原理写了段演示代码: /// <summary>
/// 点...
2019-10-22 20:47:33
勇哥继续讨论二维点旋转这个话题。这一次使用Matlab的旋转矩阵来实现图像旋转。我们把旋转原理再补充说明一下,之前我们说的是绕原点旋转,现在继续引入饶任意点旋转的原理:以坐标原点为中心旋转的原理:点p0p0绕坐标原点逆时针方向旋转θθ角度得到点p1p1.以任意图形中心点为坐标原点旋转原理:Matlab编程实现(1)Matlab自带函数实现图像任意角度旋转旋转函数介绍:B=imrotate(A,an...
2019-10-22 13:36:05
实际应用中,往往需要三点确定一个圆。例如,在机器人视觉标定中,为了能不用手工创建工具坐标,就可以通过三点定圆的方式算出工具坐标的中心在哪里。我们知道,如果三点不共线的情况下是可以产生一个圆的,有关的公式推导见下面的贴子。三点确定一个圆的算法(C#代码)这里勇哥提供公式的实现代码:private Tuple<PointF, double> drawCircle3P(PointF pt1,...
2019-10-22 11:05:50
继续上一篇,勇哥用halcon来实现上述的旋转矩阵效果。halcon的矩阵运算流程如下:① 通过hom_mat2d_identity算子创建一个初始化矩阵(即[1.0, 0.0, 0.0, 0.0, 1.0, 0.0]);② 在初始化矩阵的基础上,使用hom_mat2d_translate(平移)、hom_mat2d_rotate(旋转)、hom_mat2d_scale(缩放)等生成仿射变换矩阵;...
2019-10-20 20:50:40
勇哥先来谈谈点绕原点旋转如下图, 在2维坐标上,有一点p(x, y) , 直线opの长度为r, 直线op和x轴的正向的夹角为a。 直线op围绕原点做逆时针方向b度的旋转,到达p’ (s,t) s = r cos(a + b) = r cos(a)cos(b) – r sin(a)sin(b) (1.1)t = r sin(a + b) = r sin(a)cos(b) + r cos(a) s...
2019-10-20 10:43:09
三种不同的清理变量、显示窗口或图形的命令。(1)、比较重要的清理:清除变量命令:clear说明:运行m文件之前一般都需要该命令,否则可能出错。(2)、比较常用的清理:清理当前命令窗口命令:clc说明:clc 代表 clear command window,即清空当前的 command window窗口,也就是清屏。注意,只是清屏,而并未清除内存中的变量。(3)、另外一种清理:清除当前激活的figu...
2019-10-20 10:31:47
勇哥接触Matlab日子不短了。以前在工作中主要用它来绘制函数图像。由于使用它在C#中绘制图像普遍反映比较慢,因此几乎没有什么项目中使用了它。现在突然想到它是因为想学习一下矩阵与图形学的基础知识,辅助学习一下这些方面是该软件擅长的,因此在此留下学习的记号。Matlab最大的优点就是简单,容易操作。首先介绍正玄函数绘制过程。 确定函数的定义域,这里以(-π,π)为例。 程序如下:x=[-pi:0...
2019-10-18 20:35:04
话题见下文:经典算法——绘制空心圆勇哥这里写下其实践的内容。首先,画圆公式为: 原点为圆心,半径为r(r>0)的圆的标准方程为x2+y2=r2下面的代码中ox,oy是原点的位置, radius是圆的r。g是画布句柄。private void drawCircle2(Graphics g, int radius, int ox, int oy)
{...
2019-10-15 11:04:01
在TurboC中,可以使用各种现成的函数绘制各种各样有趣漂亮的图形,而在VC中则比较难以实现。但是,我们可以用“*”当作点,连点成线,用来绘制各种线条或者图形。这就得看算法了,所谓算法就是解决问题的方法。这里呢,我们就一起来看看,在Visual C++6.0中,如何利用“*”绘制一个空心圆。大家有什么好的建议或者意见,都可以在我的评论栏里给我留言,希望我们相互学习,共同进步。第一步:建立坐标系根据...
2019-10-15 09:50:08
三点确定一个圆的计算方法最近在写的一个软件需要根据三个坐标点来计算一个圆。因此花了点时间推导了相关的公式。这个推导不算太难,放在这里主要是做个备忘。我们设一个圆的圆心坐标为 ,半径为 r 。那么这个圆的方程可以写为:在这个圆上随便取三个点,设这三个点的坐标分别是 那么有:公式(1)(2)相减,(1)(3)相减之后经过化简可以得到:有唯一解的条件是系数行列式不为 0 :简单变变型也就是:这样写几何含...
2019-05-02 22:01:38
在评估图像处理算法时,通常会考虑是否具有亚像素精度。那么什么是亚像素呢?具有亚像素精度的算法会有什么优点呢?亚像素可以解决什么问题呢?亚像素概念的引出:图像处理过程中,提高检测方法的精度一般有两种方式。一种是提高图像系统的光学放大倍数和CCD相机的分辨率能力;另一种是引入亚像素细分技术来弥补硬件的不足以提高图像系统的分辨率。如使用亚像素细分技术将精度提到到0.01像素,就相当于提高了100倍的图像...
2019-04-21 18:08:30
授人予鱼不如授人予渔,在《线性代数》的学习中,方法尤为重要。下面就让我们一起解决《线性代数》中令人头痛的——矩阵的加法运算吧!前言:想要学会《线性代数》中的——矩阵的加法运算问题,我们这次的学习将按照下面的步骤进行:(1) 了解矩阵与线性方程的对应关系;(2) 了解矩阵的定义;(3) 特殊矩阵;(4) 矩阵加法运算规则;(5) 例题讲解;...
2019-04-21 17:32:44
现在我们正式进入矩阵的学习了,矩阵Matrix这个词我相信小伙伴们第一次接触,基本就是在小时候看黑客帝国的时候,黑客帝国中有个经典的场景,就是数字世界在解放后的尼奥双眼中已经变成了一串串数字瀑布流,就是下面:一串串的数字流组成了一个“数字集合矩形块”,这个大概就是我们小时候不知不觉接触的矩阵原型了。我们再来看下数学中的矩阵写法,如下图:咋一看矩阵就是一个三行三列的数字集合。当然我们也可以写一个两行...
2019-04-21 11:37:16
1. 简介计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换,在仿射变换中的基本变换包括平移、旋转、缩放、剪切这几种。本文以及接下来的几篇文章重点介绍一下关于旋转的变换,包括二维旋转变换、三维旋转变换以及它的一些表达方式(旋转矩阵、四元数、欧拉角等)。2. 绕原点二维旋转首先要明确旋转在二维中是绕着某一个点进行旋转,三维中是绕着某一个轴进行旋转。二维旋转中最简单的场景是绕着坐标原点进行...
2019-04-21 11:28:33
1 围绕原点的旋转如下图, 在2维坐标上,有一点p(x, y) , 直线opの长度为r, 直线op和x轴的正向的夹角为a。 直线op围绕原点做逆时针方向b度的旋转,到达p’ (s,t) s = r cos(a + b) = r cos(a)cos(b) – r sin(a)sin(b) (1.1)t = r sin(a + b) = r sin(a)cos(b) + r cos(a) sin(...
2019-04-21 11:00:26
紧接上一篇:几何向量:基本概念上一篇讲了向量的加减分配等计算,那么紧接着就是应该来讲乘除了吧,我们知道普通数值都有加减乘除开方等等计算,比如:10x10 = 100 10÷10 = 1那么向量AxB = ? A÷B = ? 我们知道向量其实是多个数值分量组成的一个集合,那么向量相乘又怎么处理呢?是分量相乘再相加,还是分量相加再相乘?然后就算给一个向量相乘的规范,那有什么意义呢?能解决什么实际问...
2019-04-21 10:45:51
前面写完三角函数分类博客,我们具备了基础的三角函数推导能力和知识,接下来就要讲向量与几何方面了。但凡买一本讲解向量的书,一开始莫不是讲解笛卡尔的城市建设所采用的坐标系概念,因为几何的英文geometry就有“地理测量”的意思,据说几何学本来就是为了测量大地的。1.下面我们来一些基础的定义:ps:“定义”这个词语以后会经常出现,我们都是一些“叛逆”的小青年,就是反感“定义”、“规定”等词语,这些词语...
2019-04-20 22:38:40
紧接上一篇:三角函数:正弦余弦定理及应用这篇我们推导三角函数中加减法与和差化积公式。1.加减法公式,加减法公式主要针对“普通”角变“特殊”角,这个意义就在于,我们知道一些特殊角度的值,比如:sin30° = 1/2,sin60° = √3/2 ,sin45° = √2/2那么sin75° = sin(45°+30°) = sin45°+sin30°?亦或者sin15° = sin(45°-30°)...
2019-04-20 22:32:43
紧接上一篇:三角函数:图像和性质关系这一篇我们来推导一些常用的三角函数公式,主要方便以后图形程序中的计算。1.余弦定理公式余弦定义主要作用是依靠已知三角形的两条边及其夹角,求第三边的情况,如下图:这里我们不处理向量(矢量)运算,单纯的从标量数值长度的推算入手,建立垂线后,得到的直角三角形ADC,可以通过勾股定理(前面推过)和sin²α+cos²α=1得到上面两个公式,后面的公式对我们求角度有很大帮...
2019-04-20 22:14:35
紧接上一篇:三角函数:直角三角形内角关系公式这次我们通过函数图文和unity程序来观察三角函数的图像,首先从基本的来:1. f(x) = sinx,为了函数图像的绘画,先建立xy直角坐标系,通过x的变值来计算f(x)的数值组成(a,b)坐标点,通过"线性函数"的性质,来"平滑"的连接这些(a,b)坐标点。(ps:线性代数的学习博客我会讲解完基本数学后继续写,...
2019-04-20 22:06:59
紧接上一章:三角函数:基本概念了解过一些约定俗成的基本定义后,这一篇主要做一些内角关系的推导,为后面程序中计算做铺垫1.sinα与cosα的关系,还是建立单位圆,可以得到sin²α+cos²α = 1ps:这里假如我们喜欢追根溯源的话,就会问为什么直角三角形存在两临边的平方和等于斜边的平方,如下:这里我们依靠四个直角三角形拼成一个边(a+b)的大正方形和边c的小正方形,然后根据大正方形的面积=小正...
2019-04-20 22:03:11
三角函数属于基本数学的范畴,这里我们重新回顾三角函数的计算和推导出来的定理,用来理解计算机程序中图形学方面的计算。首先我们来一些基本名词的讲解:1.角可以看作平面内一条射线绕着它的端点从一个位置旋转到另一个位置所形成的图形,射线的端点叫做角的顶点,旋转开始时的射线叫做角的起始边,终止时的射线叫做角的终止边。2.普遍规定按逆时针旋转的角为正角,顺时针旋转的角为负角,当射线没有任何旋转时则为零角3.怎...