二维几何图形自由变换的思路(平移、缩放、旋转)

本文介绍了二维几何图形(点、线、面)的自由变换,包括平移、缩放和旋转的核心思路。图形通过坐标系统存储,鼠标交互用于标记变换起点和终点,图形拓扑算法用于实现变换。平移是直接加delta坐标,缩放和旋转涉及锚点和比例计算。总结中提到,这些概念适用于二维及三维图形,并预告了后续关于图形修改和贝塞尔曲线的内容。
摘要由CSDN通过智能技术生成

目录

图形自由变换

图形的存储方式

鼠标交互

图形拓扑算法

总结


       

常见的二维几何图形包括点、线、面三种类型,而某些的地图标准规范中还区分多点、多线、多面、环等。本文,主要讲述简单的几何图形的自由变换(平移、缩放、旋转)的核心思路。至于复杂的几何图形则可以通过简单的几何图形组装变换得到。后面的文章会讲述如何拖拽增加修改顶点和编写辅助线的核心思路。

图形自由变换

       图形自由变换是指可以通过自由旋转、比例、倾斜、扭曲、透视和变形来变换对象。例如在photoshop和illustrator中的自由变换功能。

                               

图形的存储方式

        在计算机中几何图形的点的存储方式以x,y坐标的形式存储,坐标系统可以是屏幕的像素坐标系统,可以是地理坐标系统,也可以是自定义的单位的坐标系统。但存储方式必须能够表示二维两个方向的值。例如:point: Array<2>或者point:Object<x, y>

        而比点图形稍微复杂的线图形和面图形,则是以点为单位存储的集合图形,line: Array<point> 和 polygon: Array<point>

     

鼠标交互

      自由变换涉及的鼠标交互比较简单,大致为如下:

  1. 鼠标点击图形,标记开始;
  2. 鼠标拖拽,记录偏移量
  3. 鼠标松开,标记结束

     我们知道,鼠标的每一个动作,都能记录当前的鼠标在屏幕上的一个状态,包括屏幕像素坐标和鼠标操作事件。在鼠标与图形的交互中,所使用的东西,莫非是 鼠标的左右键点击和松开,以及一个 delta值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值