/********** update mesh部分***********/

for(int i=0;i<4;i++)

{

   mesh[i].clear(); //重要,不加的话,移动视频的四个角出现视频的重叠

  mesh[i].addVertex(ofPoint(point[i][0]->x,point[i][0]->y));

   mesh[i].addVertex(ofPoint(point[i][1]->x,point[i][1]->y));

   mesh[i].addVertex(ofPoint(point[i][2]->x,point[i][2]->y));

   mesh[i].addTexCoord(ofPoint(0,0));

   mesh[i].addTexCoord(ofPoint(LRatio,0));

    mesh[i].addTexCoord(ofPoint(0,WRatio));

    mesh[i].addVertex(ofPoint(point[i][1]->x,point[i][1]->y));

    mesh[i].addVertex(ofPoint(point[i][2]->x,point[i][2]->y));

   mesh[i].addVertex(ofPoint(point[i][3]->x,point[i][3]->y));

   mesh[i].addTexCoord(ofPoint(LRatio,0));

   mesh[i].addTexCoord(ofPoint(0,WRatio));

   mesh[i].addTexCoord(ofPoint(LRatio,WRatio));

}

/********** draw()部分***********/

ofBackground(ofColor::black); //背景设成黑色,需要投影播放

ofSetColor(ofColor::white);

fbo.begin();//////////整体渲染的开始

ofPushMatrix();

ofClear(255); //重要,消除移动时留下重影

ofTranslate(ofGetWindowWidth()*0.5,ofGetWindowHeight()*0.5);

ofRotate(holisticRotate); //整体的旋转

ofScale(holisticScale->x,holisticScale->y); //整体的放大缩小

ofTranslate(holisticPos->x,holisticPos->y); //整体的上下左右移动

for (int i=0;i<4;i++) //分别对四个视频进行相关的操作

{

   ofPushMatrix();

ofTranslate(m_video[i].width/2,m_video[i].height/2);

ofRotate(rotatePos[i]);    //360度旋转

    ofScale(scalePos[i]->x,scalePos[i]->y); //上下左右反转

   ofTranslate(m_videoPos[i]->x,m_videoPos[i]->y);

    m_video[i].bind(); //绑定视频

   mesh[i].draw();

   m_video[i].unbind(); //解除绑定

   //mesh[i].drawWireframe(); //画边线,不去除在视频中会出现对角线

  ofPopMatrix();

}

   ofPopMatrix();

   fbo.end();//////////整体渲染的结束

   fbo.getTexture().bind();

   _mesh.draw();

  fbo.getTexture().unbind();

   _mesh.clear(); //重要,消除整体移动时的重影

OpenFramework中视频或者图片进行中心旋转、平移、放大、缩小、矫正(本例以视频为准,只给出主要代码)的更多相关文章

  1. [golang]图片按中心旋转后,新图的左顶点位置的偏移量

    1 前言 图片按中心旋转后,新图的左顶点位置的偏移量 2 代码 func OffsetXYAfterRotationCore(W, H, L, T, Angle float64) (x, y floa ...

  2. wxParse解析富文本内容使点击图片可以选中并实现放大缩小

    wxParse解析富文本内容不多说,之前写过步骤介绍,主要是在使用过程中发现解析的富文本内容里有图片时有的可以点击放大缩小,有的点击却报错,找不到imgUrls. 经过排查发现:循环解析的富文本内容正 ...

  3. android 图片旋转 移动 放大缩小

    图片的变化主要是matrix的变化,对matrix不懂的可以先了解下matrxi. public class FunnyView extends View { /* * 手指按下时可能是移动 也可能是 ...

  4. CSS3图片以中心缩放,放大超出隐藏实现

    首页,重点是有一个包裹img标签的容器,这里我们给该容器设置一个class为selfScale <div class="selfScale"> <img sr=& ...

  5. IOS视图旋转可放大缩小

    - (IBAction)hideBut:(id)sender { if (self.flg) { [UIView animateWithDuration:0.3 animations:^{ self. ...

  6. 如何使用Camtasia给视频或者图片调色

    喜欢摄影过着做视频的朋友一定知道,一张好看的照片或者一段精美视频的构成因素很多,取景本身肯定是个很重要的条件,相机的素质是非常重要的硬件条件,接下来的就是后期的编辑和处理了,而在后期处理过程中调色就显 ...

  7. JS微信网页使用图片预览(放大缩小)

    前言 需求在微信网页中客户点击图片可进行预览放大缩小功能,网上找了各种js方式实现, 唯一的麻烦就是不兼容或者和项目框架不兼容 次函数只只用于部分客户端,否则会出现 WeixinJSBridge is ...

  8. PyQt实现图片中心旋转

    # -*- coding: cp936 -*- from PyQt4 import QtCore, QtGui, Qt class RotatePage(QtGui.QFrame): def __in ...

  9. JS 解决 IOS 中拍照图片预览旋转 90度 BUG

    上篇博文[ Js利用Canvas实现图片压缩 ]中做了图片压缩上传,但是在IOS真机测试的时候,发现图片预览的时候自动逆时针旋转了90度.对于这个bug,我完全不知道问题出在哪里,接下来就是面向百度编 ...

随机推荐

  1. jquery animate 动画效果使用说明

    animate( params, [duration], [easing], [callback] ) 用于创建自定义动画的函数. 这个函数的关键在于指定动画形式及结果样式属性对象.这个对象中每个属性 ...

  2. UML类图常见关系总结

    Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realizat ...

  3. [leetcode]_Remove Nth Node From End of List

    题目:移除linked-list从尾到头的第N个元素 自我思路:因为题目给出的N是从链表尾开始计算的,单链表不存在从子指向父亲的反向指针,因此我先计算链表的整个长度len,然后用len - N来表示正 ...

  4. C# 随机颜色的方法

    public string GetRandomColor() { Random RandomNum_First = new Random((int)DateTime.Now.Ticks); // 对于 ...

  5. Hive中的排序语法

    ORDER BY hive中的ORDER BY语句和关系数据库中的sql语法相似.他会对查询结果做全局排序,这意味着所有的数据会传送到一个Reduce任务上,这样会导致在大数量的情况下,花费大量时间. ...

  6. DOS下更改编码方式

    使用CHCP命令,CHCP是Change Code Page的缩写. 936 简体中文GBK 437 美国英语 65001 UTF编码 如:chcp 65001则将dos窗口中的字符编码改为UTF编码 ...

  7. Timer wheel etc.

    http://code.google.com/p/hierarchal-wheel-timer/ 最小堆的实现(C 语言版) 最小堆的实现(java) Linux 下定时器的实现方式分析 更快bobh ...

  8. (转)C#与Java的证书密钥转换

    前言 最近由于项目需求,服务端由c#编写,客户端由java编写.通信数据使用RSA非对称加密.但是java和c#生成的密钥格式是不一样的,所以需要转换格式才可以正常使用.网上搜到使用java进行格式转 ...

  9. WIN10 64位下VS2015 MFC直接添加 halcon 12的CPP文件实现视觉检测

    近段时间开始接触halcon,但是在VS2015里面使用,无论是配置还是生产EXE文件,都不如意. 加上网上的教程很多,经过多次测试,其实有很多地方无需修改,如果修改的太多也失去了直接添加封装的意义. ...

  10. 在Linux下JDK1.4.2安装报错的解决方法

    JDK1.4.2的安装   Do you agree to the above license terms? [yes or no]   yes   Unpacking...   tail: cann ...