亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? renderthread.cpp

?? QT 開發(fā)環(huán)境里面一個(gè)很重要的文件
?? CPP
字號(hào):
/******************************************************************************** Copyright (C) 2004-2006 Trolltech ASA. All rights reserved.**** This file is part of the example classes of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include <QtGui>#include <math.h>#include "renderthread.h"RenderThread::RenderThread(QObject *parent)    : QThread(parent){    restart = false;    abort = false;    for (int i = 0; i < ColormapSize; ++i)        colormap[i] = rgbFromWaveLength(380.0 + (i * 400.0 / ColormapSize));}RenderThread::~RenderThread(){    mutex.lock();    abort = true;    condition.wakeOne();    mutex.unlock();    wait();}void RenderThread::render(double centerX, double centerY, double scaleFactor,                          QSize resultSize){    QMutexLocker locker(&mutex);    this->centerX = centerX;    this->centerY = centerY;    this->scaleFactor = scaleFactor;    this->resultSize = resultSize;    if (!isRunning()) {        start(LowPriority);    } else {        restart = true;        condition.wakeOne();    }}void RenderThread::run(){    forever {        mutex.lock();        QSize resultSize = this->resultSize;        double scaleFactor = this->scaleFactor;        double centerX = this->centerX;        double centerY = this->centerY;        mutex.unlock();        int halfWidth = resultSize.width() / 2;        int halfHeight = resultSize.height() / 2;        QImage image(resultSize, QImage::Format_RGB32);        const int NumPasses = 8;        int pass = 0;        while (pass < NumPasses) {            const int MaxIterations = (1 << (2 * pass + 6)) + 32;            const int Limit = 4;            bool allBlack = true;            for (int y = -halfHeight; y < halfHeight; ++y) {                if (restart)                    break;                if (abort)                    return;                uint *scanLine =                        reinterpret_cast<uint *>(image.scanLine(y + halfHeight));                double ay = centerY + (y * scaleFactor);                for (int x = -halfWidth; x < halfWidth; ++x) {                    double ax = centerX + (x * scaleFactor);                    double a1 = ax;                    double b1 = ay;                    int numIterations = 0;                    do {                        ++numIterations;                        double a2 = (a1 * a1) - (b1 * b1) + ax;                        double b2 = (2 * a1 * b1) + ay;                        if ((a2 * a2) + (b2 * b2) > Limit)                            break;                        ++numIterations;                        a1 = (a2 * a2) - (b2 * b2) + ax;                        b1 = (2 * a2 * b2) + ay;                        if ((a1 * a1) + (b1 * b1) > Limit)                            break;                    } while (numIterations < MaxIterations);                    if (numIterations < MaxIterations) {                        *scanLine++ = colormap[numIterations % ColormapSize];                        allBlack = false;                    } else {                        *scanLine++ = qRgb(0, 0, 0);                    }                }            }            if (allBlack && pass == 0) {                pass = 4;            } else {                if (!restart)                    emit renderedImage(image, scaleFactor);                ++pass;            }        }        mutex.lock();        if (!restart)            condition.wait(&mutex);        restart = false;        mutex.unlock();    }}uint RenderThread::rgbFromWaveLength(double wave){    double r = 0.0;    double g = 0.0;    double b = 0.0;    if (wave >= 380.0 && wave <= 440.0) {        r = -1.0 * (wave - 440.0) / (440.0 - 380.0);        b = 1.0;    } else if (wave >= 440.0 && wave <= 490.0) {        g = (wave - 440.0) / (490.0 - 440.0);        b = 1.0;    } else if (wave >= 490.0 && wave <= 510.0) {        g = 1.0;        b = -1.0 * (wave - 510.0) / (510.0 - 490.0);    } else if (wave >= 510.0 && wave <= 580.0) {        r = (wave - 510.0) / (580.0 - 510.0);        g = 1.0;    } else if (wave >= 580.0 && wave <= 645.0) {        r = 1.0;        g = -1.0 * (wave - 645.0) / (645.0 - 580.0);    } else if (wave >= 645.0 && wave <= 780.0) {        r = 1.0;    }    double s = 1.0;    if (wave > 700.0)        s = 0.3 + 0.7 * (780.0 - wave) / (780.0 - 700.0);    else if (wave <  420.0)        s = 0.3 + 0.7 * (wave - 380.0) / (420.0 - 380.0);    r = pow(r * s, 0.8);    g = pow(g * s, 0.8);    b = pow(b * s, 0.8);    return qRgb(int(r * 255), int(g * 255), int(b * 255));}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频色一区| 欧美xxxxx牲另类人与| 久久精品国产久精国产爱| 国产精品家庭影院| 日韩欧美一二区| 在线欧美小视频| 欧美日韩亚洲综合一区二区三区 | 中文字幕av资源一区| 欧美欧美欧美欧美| 99久久精品99国产精品| 国产一区二区剧情av在线| 亚洲国产你懂的| 亚洲女女做受ⅹxx高潮| 国产欧美精品一区aⅴ影院| 这里只有精品电影| 欧美三级视频在线观看| 91香蕉视频黄| 国产精品伊人色| 看电视剧不卡顿的网站| 视频在线观看一区二区三区| 亚洲黄色av一区| 国产精品视频看| 欧美国产在线观看| 国产欧美视频在线观看| 久久日韩粉嫩一区二区三区| 日韩精品最新网址| 欧美电影一区二区三区| 欧美亚洲动漫精品| 日本韩国欧美一区| 成人精品电影在线观看| 国产激情一区二区三区桃花岛亚洲| 免费成人你懂的| 日本午夜精品一区二区三区电影| 亚洲国产aⅴ成人精品无吗| 亚洲精品亚洲人成人网| 亚洲天堂av老司机| 亚洲色图一区二区| 亚洲精品日韩专区silk| 亚洲女同女同女同女同女同69| 中文字幕精品综合| 亚洲欧洲日本在线| 亚洲精品欧美综合四区| 亚洲成在线观看| 天天综合色天天| 美女www一区二区| 国产在线乱码一区二区三区| 久久99日本精品| 国产综合久久久久久鬼色 | 亚洲色图色小说| 亚洲精品国产高清久久伦理二区| 有码一区二区三区| 亚洲成人免费在线| 美女任你摸久久 | 国产精一区二区三区| 国产精品资源网站| 99精品久久只有精品| 欧美制服丝袜第一页| 欧美久久久久免费| 精品国产一区二区三区四区四| 久久众筹精品私拍模特| 国产精品久久久久三级| 国产成人三级在线观看| 91在线免费看| 911精品国产一区二区在线| 欧美tk—视频vk| 国产精品日韩精品欧美在线| 樱桃视频在线观看一区| 亚洲成人在线观看视频| 精品亚洲免费视频| 不卡的电影网站| 欧美日韩激情一区二区| 日韩免费观看高清完整版 | 樱桃视频在线观看一区| 日本欧美一区二区三区| 国产乱一区二区| 日本久久一区二区三区| 日韩美女视频在线| 亚洲视频你懂的| 另类中文字幕网| 色综合一个色综合亚洲| 538prom精品视频线放| 欧美激情中文字幕一区二区| 亚洲午夜在线电影| 国产一区二区主播在线| 在线免费观看一区| www久久久久| 午夜日韩在线观看| 粉嫩aⅴ一区二区三区四区五区| 欧美亚一区二区| 国产欧美va欧美不卡在线| 午夜伦欧美伦电影理论片| 成人免费观看av| 91精品国产综合久久精品图片| 国产午夜精品一区二区三区视频| 香蕉久久夜色精品国产使用方法 | 国产精品天天摸av网| 日本不卡的三区四区五区| 97超碰欧美中文字幕| 久久综合久久99| 婷婷夜色潮精品综合在线| 99精品久久只有精品| 久久在线观看免费| 青青草国产精品97视觉盛宴| 91在线视频免费91| 国产日韩欧美制服另类| 麻豆高清免费国产一区| 欧美日韩小视频| 亚洲免费毛片网站| 国产精品91一区二区| 日韩美女天天操| 日本最新不卡在线| 欧美猛男gaygay网站| 亚洲激情男女视频| 成人黄色777网| 国产欧美一区二区精品久导航| 美女视频第一区二区三区免费观看网站| 欧美综合亚洲图片综合区| 一区二区中文字幕在线| 国产成人精品免费网站| 精品国产乱码久久久久久图片 | 国产剧情一区在线| 日韩一级二级三级| 香蕉久久夜色精品国产使用方法| 色天天综合久久久久综合片| 国产精品第四页| 成人午夜av电影| 国产亚洲成aⅴ人片在线观看 | 韩国午夜理伦三级不卡影院| 欧美一区二区三区人| 亚洲成人7777| 欧美日韩国产一级| 性感美女极品91精品| 欧美老肥妇做.爰bbww视频| 亚洲一区二区在线免费观看视频| 91丨九色porny丨蝌蚪| 亚洲视频每日更新| 日本道免费精品一区二区三区| 亚洲视频一区二区在线观看| 91蝌蚪porny九色| 亚洲欧美日韩在线| 精品视频1区2区| 日韩1区2区3区| 精品福利视频一区二区三区| 国产麻豆精品一区二区| 国产网红主播福利一区二区| 国产成都精品91一区二区三| 国产精品网站在线观看| 91在线观看视频| 亚洲成年人影院| 欧美v亚洲v综合ⅴ国产v| 国产毛片精品视频| 亚洲欧美中日韩| 欧美日韩精品一区二区三区 | 亚洲激情自拍偷拍| 欧美三级在线看| 蜜臀91精品一区二区三区| 欧美精品一区男女天堂| 成人黄色综合网站| 亚洲一区视频在线| 日韩精品一区二区三区四区视频| 韩日av一区二区| 中文字幕一区二区三区乱码在线 | 久久蜜桃香蕉精品一区二区三区| 国产乱人伦偷精品视频免下载| 国产精品久久久久婷婷二区次| 欧洲亚洲精品在线| 日本女优在线视频一区二区| 久久婷婷国产综合国色天香 | 久久久久97国产精华液好用吗| av一本久道久久综合久久鬼色| 亚洲综合在线电影| 欧美一区二区三区免费在线看 | 亚洲黄色尤物视频| 欧美日韩精品免费| 国产成人精品一区二区三区网站观看| 亚洲天天做日日做天天谢日日欢| 欧美久久免费观看| 成人午夜电影小说| 日本在线不卡视频| 国产精品伦一区| 亚洲伦理在线精品| 精品欧美一区二区三区精品久久 | 国产精品你懂的| 欧美性视频一区二区三区| 国内精品第一页| 亚洲精品高清视频在线观看| 久久综合久久综合亚洲| 欧美午夜影院一区| 国产成人综合自拍| 水蜜桃久久夜色精品一区的特点| 国产农村妇女精品| 欧美久久久一区| 91麻豆国产在线观看| 国模少妇一区二区三区| 午夜精品久久一牛影视| 中文字幕欧美一| xnxx国产精品| 欧美一卡在线观看| 欧美日韩综合在线| 99九九99九九九视频精品|