网站专业优化,wordpress迁移后栏目打开404,如何创建一个官网,网页升级访问紧急通知狼前言在数学中#xff0c;几何向量是指具有大小和方向的几何对象。在编程中#xff0c;向量有着广泛的应用#xff0c;其作用在图形编程和游戏物理引擎方面尤为突出。第一节 构造函数通过创建一个二维向量的类(或结构体)#xff0c;实现向量的表示及其运算。1. 首先#xf…前言在数学中几何向量是指具有大小和方向的几何对象。在编程中向量有着广泛的应用其作用在图形编程和游戏物理引擎方面尤为突出。第一节 构造函数通过创建一个二维向量的类(或结构体)实现向量的表示及其运算。1. 首先将类命名为“Vector2D”2. 添加两个属性 X 和 Y 分别表示二维向量的两个分量3. 实现构造函数实例化时即初始化 XY 的值Public Class Vector2DPublic Property x As Double x分量Public Property y As Double y分量 二维向量类能够实现平面向量的表示与运算 向量的X初始值,默认为0 向量的Y初始值,默认为0Public Sub New(Optional x As Double , Optional y As Double )Me.x xMe.y yEnd SubEnd Class第二节四则运算1.添加 Public 方法“Add()”实现向量与向量加法 加上一个向量 要加的向量Public Sub Add(ByVal vector As Vector2D)x vector.xy vector.yEnd Sub2.添加 Public 方法“Minus()”实现向量与向量减法 减去一个向量 要减的向量Public Sub Minus(ByVal vector As Vector2D)x - vector.xy - vector.yEnd Sub3.添加 Public 方法“Multiply()”实现向量与标量乘法 乘以一个标量 要乘的标量Public Sub Multiply(ByVal number As Double)x * numbery * numberEnd Sub4.添加 Public 方法“Divide()”实现向量与标量除法 除以一个标量 要除的标量Public Sub Divide(ByVal number As Double)x / numbery / numberEnd Sub第三节重载运算符利用运算符重载(而不是调用方法)可以更简便的实现向量运算。1. 直接在 Vector2D 类里重载运算符。重载向量与向量加法运算符Public Overloads Shared Operator (ByVal LeftVector As Vector2D, ByVal RightVector As Vector2D) As Vector2DReturn New Vector2D(LeftVector.x RightVector.x, LeftVector.y RightVector.y)End Operator重载向量与向量减法运算符Public Overloads Shared Operator -(ByVal LeftVector As Vector2D, ByVal RightVector As Vector2D) As Vector2DReturn New Vector2D(LeftVector.x - RightVector.x, LeftVector.y - RightVector.y)End Operator重载向量与标量乘法运算符Public Overloads Shared Operator *(ByVal LeftVector As Vector2D, ByVal RightNum As Double) As Vector2DReturn New Vector2D(LeftVector.x * RightNum, LeftVector.y * RightNum)End Operator重载标量与向量乘法运算符(交换律)Public Overloads Shared Operator *(ByVal LeftNum As Double, ByVal RightVector As Vector2D) As Vector2DReturn New Vector2D(RightVector.x * LeftNum, RightVector.y * LeftNum)End Operator重载向量与标量除法运算符Public Overloads Shared Operator /(ByVal LeftVector As Vector2D, ByVal RightNum As Double) As Vector2DReturn New Vector2D(LeftVector.x / RightNum, LeftVector.y / RightNum)End Operator第四节模的计算1.添加 Public 函数“Magnitude()”实现计算模长 返回向量的模长Public Function Magnitude() As DoubleReturn Math.Sqrt(x * x y * y)End Function2.添加 Public 方法“SetMag()”实现设定模长 指定向量的模长 指定的长度Public Sub SetMag(ByVal sPutNum As Double)Dim tempMag As Double Me.Magnitudex x * (sPutNum / tempMag)y y * (sPutNum / tempMag)End Sub3.添加 Public 方法“LimitMag()”实现限制模长 限制向量模长,小于或等于某一值 指定的最大值Public Sub LimitMag(ByVal lUponNum As Double)Dim tempMag As Double Me.MagnitudeIf tempMag lUponNum Thenx x * (lUponNum / tempMag)y y * (lUponNum / tempMag)End IfEnd Sub第五节夹角与旋转1.添加 Public Shared 函数“GetHeading()”实现计算向量的方向角 求向量的方向角 指定的向量Public Shared Function GetHeading(ByVal gVector As Vector2D) As DoubleDim Angle As DoubleAngle Math.Asin(gVector.x / Math.Sqrt(gVector.x * gVector.x gVector.y * gVector.y)) * ( / Math.PI)Return AngleEnd Function2.添加 Public Shared 函数“GetAngleBetween()”实现计算两个向量的夹角 求两向量的夹角 第一个向量 第二个向量Public Shared Function GetAngleBetween(ByVal gLeftVector As Vector2D, ByVal gRightVector As Vector2D) As DoubleDim Angle As DoubleAngle Math.Asin((gLeftVector.x * gRightVector.x gLeftVector.y * gRightVector.y) /(Math.Sqrt(gLeftVector.x * gLeftVector.x gLeftVector.y * gLeftVector.y) *Math.Sqrt(gRightVector.x * gRightVector.x gRightVector.y * gRightVector.y))) *( / Math.PI)Return AngleEnd Function3.添加Public方法“Rotate()”实现向量旋转 向量旋转 指定旋转的角度弧度制Public Sub Rotate(ByVal gAngle As Double)Dim x1, y1 As Doublex1 x * Math.Cos(gAngle) - y * Math.Sin(gAngle)y1 y * Math.Cos(gAngle) x * Math.Sin(gAngle)x x1y y1End Sub附录System.Numerics 命名空间提供了一套启用了 SIMD 的矢量类型。lbrack;LeetCodersqb; Flatten 2D Vector 压平二维向量Implement an iterator to flatten a 2d vector. For example,Given 2d vector [ [1,2], [3], [4,5,6] ] ...【Unity3D】计算二维向量夹角(-180到180)在Unity3D中,有时候我们需要计算二维向量的夹角.二维向量夹角一般在0~180度之前,可以直接调用Vector2.Angle(Vector2 from, Vector2 to)来计算. 但是在有些 ...用vector实现二维向量如果一个向量的每一个元素是一个向量,则称为二维向量,例如 vector vv(3, vector(4));//这里,两个“gt ...lbrack;LeetCodersqb; 251period; Flatten 2D Vector 压平二维向量Implement an iterator to flatten a 2d vector. For example,Given 2d vector [ [1,2], [3], [4,5,6] ] ...uda 3period;Cplus;plus;二维向量二维向量 接下来,你将使用向量来存储矩阵.就像 Python 使用列表列表来存储矩阵一样,C 使用的是向量的向量.用于声明二维向量的语法有点复杂. 假设你正在使用 Python,并且想存储一个 3 ...ACM计算几何模板——二维几何基础(基本运算点和线多边形)/**\ | 计算几何基础函数 | | 1.点和向量的定义 | | 2.向量的基本运算 | | 3.点积 | | 4.向量长度 | | 5.两向量角 ...lbrack;Swiftrsqb;LeetCode251period;展平二维向量 dollar; Flatten 2D VectorImplement an iterator to flatten a 2d vector. For example,Given 2d vector [ [1,2], [3], [4,5,6] ] ...二维离散余弦变换(2D-DCT)图像处理中常用的正交变换除了傅里叶变换以外,还有一些其它常用的正交变换,其中离散余弦变换DCT就是一种,这是JPEG图像压缩算法里的核心算法,这里我们也主要讲解JPEG压缩算法里所使用8*8矩阵的二维 ...二维vector的使用和数组一样,数组有二维的数组,vector也有二维的vector.下面就介绍一下二维vector的使用方法. 一般声明初始化二维vector有三种方法 (1) vector vectorlt ...随机推荐hdu 4114(状压dprpar;题目链接:http://acm.hdu.edu.cn/showproblem.php?pid4114 思路:首先是floyd预处理出任意两点之间的最短距离.dp[state1][state2][u] ...在matlab中实现遥感影像和shp文件的结合显示clc;close all;clear; roadshaperead(boston_roads.shp); %读取shape文件 figure, mapshow(boston.tif); % ...Linux设置FQDNFQDN是Fully Qualified Domain Name的缩写, 含义是完整的域名. 例如, 一台机器主机名(hostname)是www, 域后缀(domain)是example.com, 那 ...Selenium之偷懒教程进来一直停留在基础理论知识的学习中,认为太乏味,就写了一个网页自己主动化的demo:自己主动写日报.省的以后自己打开网页写啦. 直接上代码: 自己主动填写日报DEMO import java.io.B ...maven添加本地jar包依赖1. 在java工程下新建文件夹,如repo/allin/allin-util/0.1 然后jar包扔进去,如下图: 2. 修改pom.xml文件,增加以下 ...TortoiseSVN使用简介lpar;收藏rpar;TortoiseSVN使用简介 1安装及下载client 端 2什么是SVN(Subversion)? 3为甚么要用SVN? 4怎么样在Windows下面建立SVN Repository? 5 ...SpringCloud之初识Robbin---负载均衡在上一篇中讲解Eureka注册中心的案例,我们启动了一个user-service,然后通过DiscoveryClient来获取服务实例信息,然后获取ip和端口来访问. 但是实际环境中,我们往往会开启很 ...initializerlowbar;list 列表初始化initializer_list 列表初始化 用花括号初始化器列表初始化一个对象,其中对应构造函数接受一个 std::initializer_list 参数. #includefastjson总结1,文件的转成字节数组byte[]的时候,可以直接用fastjson序列化和反序列化 2,用RequestBody接受json的时候,content-type是否已经application/json ...虚拟机 安装 CentOS7初次接触CentOS,最好是在虚拟机中安装: 因为CentOS的安装选项有很多,不理解的情况下千万不要在物理机上尝试: 不然可能出现这种情况:安装好以后,只有黑色的屏幕,只能在里面敲命令:这对于新手来 ...