手动绘制原理:
分为两部分绘制:
绘制直线较为简单,麻烦在绘制箭头(多边形)。
已知:aP(A点坐标),bP(B点坐标),θ角(angle表示),CD长度width.
求:点C坐标,点D坐标。
解:
1,求出向量AB abVector=bP-aP;,并且单位向量化。此时abVector代表了方向
2,BE的长度求解 widthBE= width / 2 / (Math.Tan(angle / 2)); (三角形BEC为直角三角形)。
3,求解向量BE beVector = (float)widthBE * -abVector; (由长度和AB单位向量决定)。
4,求解E点坐标 eP – bP = beVector ,所以 eP = bP + beVector .
5,4中求出了E点坐标,如果能够求出向量CE和向量ED,那么点C和点D的坐标就知道了。
因为向量CD和向量AB垂直,所以向量CD为:
cdVector = ( –abVector.Y , abVector.X);
同时对cdVector 单位化,此时cdVector 代表了CD方向。
6,则CE向量:
ceVector = ceWidth*cdVector ;
则点C eP – cP = ceVector ; 即 cP = eP – ceVector
同理, dP = eP – deVector;
7,此时求出了点 C和点D,加上点B可以构成一个Polygon了。
分享到:
相关推荐
"MFC C++ CDC双缓冲绘制箭头" MFC(Microsoft Foundation Classes)是一种基于C++的应用程序框架,CDC(Device Context)是MFC中的一种设备上下文对象,用于绘制图形。双缓冲绘制是指在内存中创建一个与显示设备...
### 一个经典的AS绘制箭头算法 在ActionScript(简称AS)编程中,有时我们需要绘制图形来进行视觉展示或实现特定功能。本篇文章将详细介绍一个经典的AS绘制箭头算法,并对其背后的数学原理进行深入剖析。 #### ...
在IT领域,尤其是在图形设计、软件开发和交互式应用中,绘制箭头是一项常见的任务。箭头作为一种视觉指示,能够有效地引导用户注意力,指示方向,或者标记特定元素。本篇文章将详细探讨如何在不同的环境中绘制、操作...
在C#编程中,绘制箭头是一项常见的任务,特别是在创建图形用户界面(GUI)或进行图形渲染时。本文将深入探讨如何使用C#实现绘制箭头的算法,并结合"模拟时钟"的场景来阐述这一过程。 首先,箭头通常是由直线和...
<title>Cesium绘制箭头示例 <script src="https://cesiumjs.org/releases/1.87/Build/Cesium/Cesium.js"></script> <div id="cesiumContainer"></div> <script src="main.js"></script> ``` 接下来,我们...
本文将深入讲解如何在Qt环境中使用QPainter来绘制箭头,同时确保该功能在Windows和Linux等多平台上运行。 首先,Qt的QPainter类是用于2D图形绘制的核心工具,它可以实现在窗口、图像、打印机等多种设备上的绘图操作...
在计算机图形学领域,"鼠标绘制箭头线段程序"是一种常见的交互式应用程序,它允许用户使用鼠标在屏幕上画出带有箭头的线段。这种程序通常被用于绘图软件、设计工具或教学演示中,使得用户能够方便地指示方向或表示...
这里我们将深入探讨如何使用C#自定义绘制箭头,而非仅仅依赖于系统提供的基本图形元素。 首先,我们需要理解C#中的图形绘制是通过`System.Drawing`命名空间中的类来实现的,主要包括`Graphics`、`Pen`和`Point`等类...
在IT领域,尤其是在图形设计、软件开发或者交互界面设计中,绘制箭头是一项常见的任务。箭头作为一种视觉指示工具,可以有效地引导用户的注意力,表示方向或流程,因此掌握如何画箭头并对其进行编辑是非常重要的技能...
2. **绘制箭头**: 箭头通常需要自定义路径来绘制。你可以使用`MoveTo`和`LineTo`函数定义路径,然后使用`DrawPath`来绘制。为了画箭头头,可能需要额外的几何计算。以下是一个基本的箭头绘制示例: ```cpp ...
为了在直线末端绘制箭头,我们需要计算箭头的角度。这可以通过计算两点之间的向量并求得角度完成。然后,使用ArcTo函数绘制两个半圆弧形,形成箭头的翼片。同时,用LineTo函数绘制箭头的尖端。 5. **刷新视图**: ...
arcgis 箭头绘制、箭头绘制、箭头绘制、箭头绘制、箭头绘制、箭头绘制、箭头绘制、箭头绘制、箭头绘制、箭头绘制
做 gis 项目的朋友应该对 OpenLayer 都很熟悉了...虽然有很多优点,但是其并没有像 百度、搞的一样提供内部带箭头线条的绘制API,因此需要手动完成这个功能,这里我写了一个完成此功能的完整 DEMO,各位可以参考下载。
在本文中,我们将深入探讨如何在VC++环境中创建一个动态绘制箭头的程序。这个小程序能够根据用户的需求绘制出东南西北四个方向的箭头,对于编程初学者或需要在图形界面上实现箭头指示功能的开发者来说,具有很高的...
在ArcEngine开发中,我们经常会遇到需要在MapControl上绘制各种几何对象的需求,例如椭圆和带有箭头的线。这些元素在地理信息系统(GIS)应用中非常常见,用于表示地理特征、范围、方向等信息。ArcEngine是Esri公司...
"CAD 中绘制箭头的详细方法" 在 CAD 软件中绘制箭头是一项基本的操作,但许多用户仍然不知道如何正确地绘制箭头。本文将详细介绍如何在 CAD 中绘制箭头,包括使用多义线命令、DIM 命令和 Lisp 程序等多种方法。 ...
在这个“基于QT QML的动态旋转箭头”项目中,我们将深入探讨如何利用QML实现一个可以动态旋转的箭头图形。 首先,我们需要了解QML的基本结构。QML文件通常以`.qml`为扩展名,它们由元素(elements)和属性...
函数首先绘制一条从起点到终点的线,然后计算出箭头的角度,接着通过`translate`和`rotate`方法移动并旋转坐标系,以绘制箭头的三角形部分。最后,调用`stroke`方法绘制出线条。 为了在页面加载时自动绘制箭头,...
在Matlab中绘制箭头坐标轴图形是一种常见且有用的技术,尤其在表示向量或力的方向和大小时。本资源包含作者原创的Matlab函数,旨在简化这一过程,并提供了丰富的演示实例和详细说明文档,帮助用户更好地理解和应用...
在SVG画布内,我们可以使用`<path>`元素来绘制线条和箭头。`<path>`元素的`d`属性是一个指令序列,用于指定路径的数据,包括移动、直线、曲线等操作。 例如,我们可以使用以下`<path>`元素创建一个简单的箭头形状:...