图形学:图像围绕着某个点P(a,b)旋转------白话版

前提:在研究图形时候,我们并没有规定图形的大小,所以任意图形多是支持的,这也另外说明了一点,图形转换和图形的大小没有关系。

如果图像围绕着某个点P(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后将旋转后的图像平移回到原来的坐标原点。

-----这句话的解读,以前我一直以为是将坐标系平移到图像的中心....其实不是,因为这里并没有规定图像大小,所以只是平移到旋转点。看仔细点..还有一点不要将物体想象为某一个具体小方块. 这是一直误解,因为旋转物体是支持任意物体旋转的,所以应该理解物体无线大,任意物体都是支持的。这也恰恰说明了一点,计算机只支持基本的图形变换-----基于原点的图像变换。-----所以不要把物体的旋转点 和 中心点没有任何的关系。 不要混为一谈.....  所以 就是 物体的基本图形变换支持旋转点不是物体的中心点的变换。  --------如果吧物体的中心点和旋转点,搞混淆。物体围绕某一点旋转你这么也想不明白。

计算机只支持物体的基本的变换的旋转定义是:只支持旋转点为原点的变换。  旋转点不是物体的中心点。  基本变换和图形的大小位置没有任何的关系....

我们需要3步:

1. 平移——将坐标系平移到点P(a,b);

2. 旋转——以原点为中心旋转图像;

3. 平移——将旋转后的图像平移回到原来的坐标原点;

相比较前面说的图像的几何变化(基本的图像几何变化),这里需要平移——旋转——平移,这种需要多种图像的几何变化就叫做图像的复合变化。

------这三步另外一种解释方法:http://itc.bnuep.com/computer/Upload/CG-7-transformation.swf   -----讲的还不错....

时间: 2024-11-16 04:39:44

图形学:图像围绕着某个点P(a,b)旋转------白话版的相关文章

《交互式计算机图形学 基於OpenGL着色器的自顶向下方法(第6版) 》代码运行问题及其解决

上一篇文章,笔者提到了红宝书第8版的代码编译运行问题,想必大家已经知道我看过红宝书了. 然而,笔者竟然看不懂,这是因为笔者并不知道OpenGL的历史.原来有古代OpenGL和现代OpenGL之分,古代OpenGL使用固定功能管线,现在已经被废弃(尽管还能用),而现代使用可编程管线. 由于笔者在网上搜索一通,见到怎么OpenGL的代码有两种风格,到了现在才搞懂.原来OpenGL在第8版之前都是讲的固定功能管线,到了第8版立即转成了可编程管线.然而红宝书已经认定了你有一定的计算机图形学基础,因此介绍

图像的读取、缩放、平移、旋转、翻转、仿射、透射

1 import cv2 2 import numpy as np 3 import matplotlib.pyplot as plt 4 5 # 在读取图片中,imread('图片地址','模式参数')函数可以来控制所读取图片的模式. 6 # 模式参数: 7 # 0:读入的为灰度图像(即使读入的为彩色图像也将转化为灰度图像) 8 # 1:读入的为彩色图像(默认) 9 10 # img=cv2.imread('girl.jpg',0) 11 # 数组 12 # print(img) 13 # 图

一条直线围绕着不是原点的点旋转后的坐标怎么算

方法一: 上图表示直线l1:y=kx+b绕点P(m,n)选装θ rad得到直线l2 由图可知,四边形PACB中∠ACB=2π-π/2-π/2-θ=π-θ,则直线l1旋转了θ rad 可得l2的斜率为tan(arctank+θ) 然后设l2的方程为y=tan(arctank+θ)+b' 利用PA=PB列方程,求出b'. (此方法无法计算垂直于Y轴的直线) 方法二: 直接求点B.C的坐标,然后用两点是求直线l2的方程

PHP图像操作:3D图、缩放、旋转、裁剪、添加水印(一)

来源:http://www.ido321.com/875.html 1.利用php gd库的函数绘制3D扇形统计图 1: <?php 2: header("content-type","text/html;charset=utf-8"); 3: /*扇形统计图*/ 4: $image = imagecreatetruecolor(100, 100); /*创建画布*/ 5: 6: /*设置画布需要的颜色*/ 7: $white = imagecolorallo

Android 开发之Matrix图片处理类的使用

在Android中,对图片的处理需要使用到Matrix类,Matrix是一个3 x 3的矩阵,他对图片的处理分为四个基本类型: 1.Translate————平移变换 2.Scale————缩放变换 3.Rotate————旋转变换 4.Skew————错切变换 在Android的API里对于每一种变换都提供了三种操作方式:set(用于设置Matrix中的值).post(后乘,根据矩阵的原理,相当于左乘).pre(先乘,相当于矩阵中的右乘).默认时,这四种变换都是围绕(0,0)点变换的,当然可以

Android Matrix类以及ColorMatri

引自:http://www.chinabaike.com/t/37396/2014/0624/2556217.html Android Matrix类以及ColorMatrix类详解 最近在系统学习了android的图像处理(在网上搜集了一些资料并自己编写了测试程序,做了整理),现在这里做一总结: 一.ColorMatrix类 ColorMatrix是一个5x4阶的矩阵 在下面表示为A,第一行表示R红色分量,第二行表示G绿色分量,第三行表示B蓝色分量,第四行表示透明度: 用一维数组的存储方式如下

图像旋转变换

Author:Maddock Date:2015-01-01 转载请注明出处:http://www.cnblogs.com/adong7639/p/4197341.html 图像旋转是图像变换中的一种常见的操作,本文将从数学原理上来给出图像旋转的程序代码实现. 图像旋转是将图像围绕某点为中心,顺时针或者逆时针旋转一定的角度,构成一幅新的图像.按照不同的点旋转最后生成的图像大小和形状是一致的,唯一的差别在于空间坐标系的位置不同,本文假定按照图像的中心旋转.这里有一篇博客将图像旋转的公式介绍的非常详

html5 canvas多个图像旋转

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

图像滤镜艺术---Swirl滤镜

Swirl Filter Swirl 滤镜是实现图像围绕中心点(cenX,cenY)扭曲旋转的效果,效果图如下: 原图 效果图 代码如下: // /// /// Swirl Filter /// /// Source image. /// The X position of Swirl. /// The Y position of Swirl. /// The degree of swirl,0-360. /// The result image. private Bitmap SwirlFil