/********** 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. JavaScript高级 引用类型(二)《JavaScript高级程序设计(第三版)》

    五.Function类型 是JS中最重要的一种引用类型 构造方式:(三种) 函数声明: 函数表达式定义: 函数构造器: 没有重载: 如果有两个相同函数名的函数,执行时,执行最近被定义的一次. 函数声明 ...

  2. LoadCursor 函数

    从可执行文件中载入指定的光标资源,加载到指定的应用实例中 ? 1 2 3 4 5 HCURSOR WINAPI LoadCursor(    _In_opt_ HINSTANCE hInstance, ...

  3. js事件 event.target

    我们购物车里,会时不时增加和删除产品时,就会绑定事件和解绑的动作. <ul> <li></li> <li></li> </ul> ...

  4. ADO.NET中ExcuteNonQuery获取存储过程Return返回值

    /// <summary> /// 获取当月用户已投票数量 /// </summary> /// <param name="userId">用户 ...

  5. Dynamic Prompt Table for Record Field on PeopleSoft Page

    Sometimes a situation in project work arises to have a dynamic prompt table for record fields on Peo ...

  6. Winform TreeView 单选

    private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) { //通过鼠标或者键盘触发事件,防止修改节点的Checke ...

  7. 在PyQt中直接使用ui文件并加载qrc资源文件

    1. 用Qt设计师创建一个包含qrc资源文件的ui文件 2.打开cmd使用以下命令把qrc资源文件转换成十六进制的py文件 pyrcc4 -o C:\res.py C:\res.qrc pyrcc4 ...

  8. C++列出完数

    题目内容:自然数中,完数寥若晨星,请在从1到某个整数范围中打印出所有的完数来.所谓“完数”是指一个数恰好等于它的所有不同因子之和.例如,6是完数,因为6=1+2+3.而24不是完数,因为24≠1+2+ ...

  9. MySql中把一个表的数据插入到另一个表中的实现代码

    web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码 ...

  10. Show or Hide Menu List via ng-show

    <div ng-app ng-controller='MenuController'> <ul ng-show='menuState_show'> <li>Stun ...