/********** 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. C puzzles详解【46-50题】

    第四十六题 What does the following macro do? #define ROUNDUP(x,n) ((x+n-1)&(~(n-1))) 题目讲解: 参考:http:// ...

  2. 图片轮播jQuery

          <script type="text/javascript">         //图片轮播         var bannerIndex = 0; ba ...

  3. 观察者(observer)设计模式

    转载:http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx 假设我们有个高档的热水器,我们给它 ...

  4. VS2010在非IE浏览器下调试Silverlight程序

    以Chrome为例: 第一步:在程序中设置断点. 第二步:右键点击web应用程序的起始页(.html或.aspx文件),选择"浏览方式",选中Chrome或其它非IE浏览器,点&q ...

  5. 一款jQuery特效编写的大度宽屏焦点图切换特效

    一款jQuery编写的大度宽屏焦点图切换特效 焦点图显示区域有固定的宽度,当前显示宽度之外是一个半透明层显示的其它的焦点图片, 最好的是,此特效兼容IE6以及其它浏览器. 适用浏览器:IE6.IE7. ...

  6. PopupWindow的简单使用

    测试代码: package com.zzw.testpopuwindows; import android.app.Activity; import android.graphics.Color; i ...

  7. QQ消息99+形成--第三方开源--BezierView

    Android第三方开源的BezierView实现了上述QQ的99+条未读消息气泡显示.Android开源BezierView在github上的项目主页是:https://github.com/che ...

  8. 解析 this.initialize.apply(this, arguments)

    一. 起因 那天用到prototype.js于是打开看看,才看几行就满头雾水,原因是对js的面向对象不是很熟悉,于是百度+google了一把,最后终于算小有收获,写此纪念一下^_^. prototyp ...

  9. ContactsContract中涉及数据库中的一些列属性值【Written By KillerLegend】

    ContactsContract.Data   http://developer.android.com/reference/android/provider/ContactsContract.Dat ...

  10. opensuse 安装 Anaconda3 之后出现Could not start d-bus. Can you call qdbus?

    最近在安装了opensue Leap42.1之后,想要学习一下python,就安装了Anaconda3,并且将Anaconda3的安装路径添加到了PATH里,但是在重新启动系统后,出现了"C ...