/********** 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. linux使用dd命令快速生成大文件

    dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 会生成一个1000M的test文件,文件内容为全0(因从/dev/zero ...

  2. mvc路由设置参数配置类似于url重写

    1.新建的mvc项目中Global.asax 2.在另外一个控制器中的视图中 3. 4.

  3. Windows服务中用Timer和线程两种方式来执行定时任务

    在Service服务文件夹下新建Windows服务 - TestService

  4. Objective-C控制语句

    Objective-C控制语句有以下三类: 分支语句:if-else,switch 循环语句:while,do-while,for 与程序转移相关的跳转语句:break,continue,goto. ...

  5. PHP empty函数报错的解决办法

    PHP empty函数在检测一个非变量情况下报错的解决办法. PHP开发时,当你使用empty检查一个函数返回的结果时会报错:Fatal error: Can't use function retur ...

  6. 通过URLHttpConnection方式来取得图片,并且显示在ImageView上

    界面: 代码xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xml ...

  7. STM32F0xx_DAC输出电压配置详细过程

    前言 数模转换DAC的功能在现实应用中所占的分量,相对定时器TIM.串口USART等要小的多,这也是ST为什么内部集成DAC模块相对来说不是那么多的原因.但在有需要使用数模转换功能的项目中,自带的这个 ...

  8. AngularJs记录学习01

    <!doctype html> <html ng-app="myapp"> <head> <meta http-equiv="C ...

  9. jQuery两句话实现HTML转义与反转义

    $('<div>').text('<a>').html() 结果:<a> $('<div>').html('<a>').text() 结果: ...

  10. WPF Canvas 画区域

    有时候需要实现类似于QQ截图那样的选择区域功能,这里的区域可以是一条线,圆,矩形等等 实现原理就是一个Canvas做蒙板,然后canvas的三个事件,MouseLeftButtonDown,Mouse ...