图形数据处理(原创)

document.myui_common = {
    //进度-假进度-以进度先执行,结果回调
    processBade:function(canvasId,store,callback){
        var pro = 0;
        var myrun = function(){
            if(pro>100){
                callback(pro);
                return;
            }else{
                //设置中间进度数
                var process_center = store[canvasId].process_center;
                process_center.style.text = pro+‘%‘;
                pro++;
                setTimeout(myrun,0)
            }
        }
        myrun();
    },
    //解析三维数组 poi指定方向
    getPackList:function(g3_point,splitIndex,poi){
        var self = this;
        var arry = self.getGpoint(g3_point,splitIndex,poi);
        var arrli = new Array();
        for(var i=0;i<arry.length;i++){
            var temp_arry = arry[i];
            for(var j=0;j<temp_arry.length;j++){
                arrli.push(temp_arry[j]);
            }
        }
        return arrli;
    },
    //拐点遍历
    getGpoint:function(g3_point,splitIndex,poi){
        var self = this;
        var start = 0;
        var end = 1;
        var allList = new Array();
        var run = function(g3_point,splitIndex,start,end){
            if(end>=g3_point.length){
                return;
            }
            var tempLi = [g3_point[start],g3_point[end]]
            var arry = self.splitLine(tempLi,splitIndex,poi);
            allList.push(arry);
            run(g3_point,splitIndex,start+1,end+1);
        }
        run(g3_point,splitIndex,start,end);
        return allList;

    },
    //细分坐标,两个点细分出多个点
    splitLine:function(g3_point,splitIndex,poi){
        var slist = new Array();
        var x1 = g3_point[0][0];
        var y1 = g3_point[0][1];
        var x2 = g3_point[1][0];
        var y2 = g3_point[1][1];
        if(x2==x1){
            var distance = parseFloat((Math.abs(y2-y1)/10).toFixed(2));
            for(var i=0;i<splitIndex;i++){
                var x3 = x1;
                var y3 = i*distance+y1;
                var temp = new Array();
                temp.push(x3);
                temp.push(y3);
                slist.push(temp);
            }
            return slist;

        }else{
            if(poi==‘right‘){
                var k = ((y2-y1)/(x2-x1)).toFixed(2);
                for(var i=0;i<splitIndex;i++){
                    var x3 = parseFloat((Math.abs(x2-x1)*((i+1)/splitIndex)).toFixed(2))+x1;//等分
                    var y3 = Math.abs(x3-x1)*k+y1;
                    var temp = new Array();
                    temp.push(x3);
                    temp.push(y3);
                    slist.push(temp);
                }
                return slist;
            }else if(poi==‘left‘){
                var k = ((y2-y1)/(x2-x1)).toFixed(2);
                for(var i=0;i<splitIndex;i++){
                    var x3 = x1-parseFloat((Math.abs(x1-x2)*(i/splitIndex)).toFixed(2));//等分
                    var y3 = Math.abs(x3-x1)*k+y1;
                    var temp = new Array();
                    temp.push(x3);
                    temp.push(y3);
                    slist.push(temp);
                }
                return slist;
            }

        }

    }
}
时间: 2024-12-29 07:16:16

图形数据处理(原创)的相关文章

吴裕雄--天生自然 pythonTensorFlow图形数据处理:读取MNIST手写图片数据写入的TFRecord文件

import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 读取文件. filename_queue = tf.train.string_input_producer(["F:\\output.tfrecords"]) reader = tf.TFRecordReader() _,serialized_example = reader.re

吴裕雄--天生自然 pythonTensorFlow图形数据处理:数据集高层操作

import tempfile import tensorflow as tf # 1. 列举输入文件. # 输入数据生成的训练和测试数据. train_files = tf.train.match_filenames_once("F:\\output.tfrecords") test_files = tf.train.match_filenames_once("F:\\output_test.tfrecords") # 定义解析TFRecord文件的parser方

GPU虚拟化技术

一.GPU概述 GPU的英文名称为Graphic Processing Unit,GPU中文全称为计算机图形处理器,由1999 年NVIDIA 公司提出.GPU这一概念也是相对于计算机系统中的CPU而言的,由于人们对图形的需求越来越大,尤其是在家用系统和游戏发烧友,而传统的CPU不能满足现状,因此需要提供一个专门处理图形的核心处理器.GPU 作为硬件显卡的"心脏",地位等同于CPU在计算机系统中的作用.同时GPU也可以用来作为区分2D硬件显卡和3D硬件显卡的重要依据.2D硬件显卡主要通

2017年最佳开源网络监控工具

2017年最佳开源网络监控工具 社区广播:运维派(Yunweipai.com)是国内最早成立的IT运维社区,欢迎大家投稿,让运维人不再孤寂的成长! 对开源软件的需求持续增长,网络管理工具已经适应了这一浪潮.你不再需要为可能不是你所需的软件支付小额的费用,请留意下(大部分)免费的开源工具,用来监控.配置和映射你的联网设备. 这里有 14 个开源网络监控工具来协助IT管理员完成工作. NetXMS https://www.netxms.org/ NetXMS 提供了企业级开源网络管理和监控程序,它在

GPU 与CPU的作用协调,工作流程、GPU整合到CPU得好处

http://blog.csdn.net/maopig/article/details/6803141 在不少人的心目中,显卡最大的用途可能就只有两点--玩游戏.看电影,除此之外,GPU并没有其他的作用了.但是随着微软IE9的正式发布,不少人突然发现,微软一直提到一个名词:GPU硬件加速,从而也让不少人开始关注GPU硬件加速.那么GPU硬件加速到底是什么?能干些什么呢?下面让我们一起走进GPU硬件加速的世界去看看吧. GPU硬件加速就是显卡辅助CPU进行图形运算 要说起GPU硬件加速,我们首先要

【原创】Linux环境下的图形系统和AMD R600显卡编程(9)——R600显卡的3D引擎和图形流水线

1. R600 3D引擎 R600核心是AMD一款非常重要的GPU核心,这个核心引入了统一处理器架构,其寄存器和指令集同以前的GPU 都完全不同,对其编程也有比较大的区别. 图1显示了R600 GPU 核心的硬件逻辑图,R600 GPU 包含并行数据处理阵列(DPP array).命令处理器.内存控制器以及其他逻辑部件,R600的命令处理器读取驱动编写命令并解析命令,R600还要将硬件产生的“软中断”发送给CPU.R600的内存控制器能够访问R600 GPU核上的所有内存(VRAM内存,或者称本

【原创】Linux环境的图形系统和AMD显卡驱动编程(2)——Framebuffer、DRM、EXA和Mesa简介

1. Framebuffer Framebuffer驱动提供基本的显示,framebuffer驱动操作的硬件就是一个显示控制器和帧缓存(一片位于系统主存或者显卡显存).Framebuffer驱动向应用程序提供/dev/fbx的设备接口,应用程序通过读写这个设备节点实现对显示控制器和帧缓存. 下面这个程序显示了应用程序操作操作framebuffer节点的过程.运行这个程序,将在屏幕上方显示一个正方形(这里省略了错误检查代码). 1 #include <stdio.h> 2 #include &l

【原创】Linux环境的图形系统和AMD显卡驱动编程(1)——Linux环境下的图形系统简介

Linux/Unix环境下最早的图形系统是Xorg图形系统,Xorg图形系统通过扩展的方式以适应显卡和桌面图形发展的需要,然而随着软硬件的发展,特别是嵌入式系统的发展,Xorg显得庞大而落后.开源社区开发开发了一些新的图形系统,比如Wayland图形系统. 由于图形系统.3D图形本身的复杂以及历史原因,Linux下的图形系统相关的源码庞大而且复杂,而且缺少学习的资料(所有源代码分析或者驱动编程的书籍都很少介绍显卡驱动).在后续一系列文章中,笔者将从对AMD硬件编程的角度出发对部分问题做一个简单的

【原创】Linux环境下的图形系统和AMD R600显卡编程(3)——AMD显卡简介

早期的显卡仅用于显示,后来显卡中加入了2D加速部件,这些部件用于做拷屏,画点,画线等操作.随着游戏.三维模拟以及科学计算可视化等需要,对3D的需求逐渐增加,早期图形绘制工作由CPU来完成,要达到真实感和实时效果,只能绘制一些简单的线框模型,上世纪80年代,斯坦福大学的Jim Clark教授率先提出用专用集成电路技术实现一个专用的3D图形处理器的设想,于1984年推出了世界上第一个通用图形工作站IRIS1400. AMD最早的显卡从R100开始,一直到R900(R600以后也使用HD xxxx作为