threejs多面体贴图加纹理,貌似只改变了颜色,求大神指点! 40C
  // 鼠标点击
    var outlineMesh;
    document.addEventListener("mousedown", onDocumentMouseDown, false);

    init();
    animate();

    function init() {
        scr();
       objects();
        lights();
        addfloor();
        others();
    }
 //   var scene = new THREE.Scene();

    // create a camera, which defines where we're looking at.
 //   var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000);

    function lights() {
        var ambientLight = new THREE.AmbientLight(0xffffff, 0.3);
        scene.add(ambientLight);


        var pointLight = new THREE.PointLight(0xffffff, 0.1);
      //  scene.add(pointLight);

     //   var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000);
        var pointLight = new THREE.PointLight(0xffffff, 1);
        // scene.add(pointLight);
        camera.add(pointLight);
    }



    function objects() {
    //  loadcontainer();
        addHospital()
    }

    function addHospital() {
        var hospital = createHospital()
     //   hospital.position.y = 20
        scene.add(hospital)
    }



    function createHospital() {
        var hospital = new THREE.Object3D()
        var frontMainCoords = [
           [0, -20],
           [-30, 0],

           [0, 20],
           [30, 0],

        ]
        var frontMainShape = utils.makeShape(frontMainCoords)
        var frontMainGeometry = utils.makeExtrudeGeometry(frontMainShape, 20)
        var frontMainMaterial = new THREE.MeshPhongMaterial({ map: textures.window() })
  //      var phongmaterial = new THREE.MeshPhongMaterial({color: 0x677784, transparent: true, opacity: 0.85});
  //      var phongmes = new THREE.Mesh(frontMainMaterial, phongmaterial);
        frontMainMaterial.map.repeat.set(0.1, 0.04)

        var alldate = []

        //楼层总列表
        for(var i=0;i<6;i++){

            /*  var frontMain = new THREE.Mesh(frontMainGeometry, frontMainMaterial)
              hospital.add(frontMain)
               renderScene()*/
            var obj = "sta"+i;
            alldate.push(obj)
        }

        var layerList1 = []
        var layerList2 = []

        for(var j=0;j<5;j++){
            var onedata = new THREE.Mesh(frontMainGeometry, frontMainMaterial);
        //  var onedata =createMesh(frontMainGeometry, "stone.jpg");

            hospital.add(onedata);
            layerList1.push(onedata)

        }
        for(var j=5;j<alldate.length;j++){
       //   var onedata =createMesh(frontMainGeometry, "stone.jpg");
            var onedata = new THREE.Mesh(frontMainGeometry, frontMainMaterial);
            hospital.add(onedata);
            layerList2.push(onedata)
        }

        function createMesh(geom, imageFile) {
            //  var texture = 


                var mat = new THREE.MeshPhongMaterial();
                mat.normalMap = new THREE.TextureLoader().load("/seismis/js/3djs/assets/textures/general/" + imageFile);
        //      mat.specular = new THREE.Color(0xffffff);
                mat.needsUpdate = true;
                mat.shininess = 10;
                var mesh = new THREE.Mesh(geom, mat);
                return mesh;
            }
            //中间立体图形
    //  var polyhedron1 = createMesh(cubeGeometry, "stone.jpg");



        renderScene();
        var step1 = 0;
        var step2 = 0;
        function renderScene() {
            step1 += 0.1;
            for(var i=0;i<layerList1.length;i++){
                var frontMain = layerList1[i];
                frontMain.position.x = 0 + ( (2+i) * (Math.cos(step1)));
                frontMain.position.y = 0+i*20 + ( 2 * Math.abs(Math.sin(step1)));
                frontMain.position.z = 0 + ( (2+i) * (Math.cos(step1)));

            }
            step2 += 0.1;
            for(var k=0;k<(layerList2.length);k++){
                var frontMain = layerList2[k];
                frontMain.position.x = 0 + ( (2+k+5) * (Math.cos(step2)));
                frontMain.position.y = 0+(k+5)*20 + ( 2 * Math.abs(Math.sin(step2)));
                frontMain.position.z = 0 + ( (2+k+5) * (Math.cos(step2)));

            }


          requestAnimationFrame(renderScene);
          renderer.render(scene, camera);
        }



        // call the render function
        var step = 0;

        initModel()
        function initModel() {
            //辅助工具
            var helper = new THREE.AxisHelper(10);
            scene.add(helper);
            var cubeGeometry = new THREE.Geometry();
            //创建立方体的顶点
            var vertices = [
                new THREE.Vector3(0, 0, 20), //v0
                new THREE.Vector3(30, 0, 0), //v1
                new THREE.Vector3(0, 0,-20), //v2
                new THREE.Vector3(-30, 0, 0), //v3
                new THREE.Vector3(-30,220,0), //v4
                new THREE.Vector3(-22,220,10), //v5
                new THREE.Vector3(22,220,10), //v6
                new THREE.Vector3(30,220,0), //v7
                new THREE.Vector3(22,220,-10), //v8
                new THREE.Vector3(-22,220,-10), //v9
            ];
            cubeGeometry.vertices = vertices;
            //创建立方的面
            var faces=[
                new THREE.Face3(0,1,2),
                new THREE.Face3(0,2,3),
                new THREE.Face3(3,0,5),
                new THREE.Face3(3,5,4),
                new THREE.Face3(3,4,9),
                new THREE.Face3(3,9,2),
                new THREE.Face3(2,9,8),
                new THREE.Face3(8,1,2),
                new THREE.Face3(8,7,1),
                new THREE.Face3(6,1,7),
                new THREE.Face3(6,0,1),
                new THREE.Face3(0,6,5),
                new THREE.Face3(5,6,7),
                new THREE.Face3(5,7,8),
                new THREE.Face3(5,8,9),
                new THREE.Face3(5,9,4),

            ];
            cubeGeometry.faces = faces;
            //生成法向量
            cubeGeometry.computeFaceNormals();




            function createMesh(geom, imageFile) {
            //  var texture = 
                var mat = new THREE.MeshPhongMaterial();
                mat.map = new THREE.TextureLoader().load("/seismis/js/3djs/assets/textures/general/" + imageFile);
        //      mat.specular = new THREE.Color(0xffffff);
                mat.needsUpdate = true;
                mat.shininess = 10;
                var mesh = new THREE.Mesh(geom, mat);
                return mesh;
            }



            //中间立体图形
        //  var polyhedron1 = createMesh(cubeGeometry, "stone.jpg");

        //  scene.add(polyhedron1);

        /*  var frontMainMaterial = new THREE.MeshPhongMaterial({ map: textures.window() })
             frontMainMaterial.map.repeat.set(0.01, 0.04)*/

            var polyhedron1 = createMesh(cubeGeometry, "bathroom-normal.jpg");
            polyhedron1.position.x = 0;
            polyhedron1.position.y = 120;
            polyhedron1.position.z = 0;
            scene.add(polyhedron1);


   /*          var textureLoader = new THREE.TextureLoader();

               textureLoader.load( "/seismis/js/3djs/assets/textures/general/bathroom-normal.jpg", function( texture ){
                   // 加载法向贴图
                   textureLoader.load("/seismis/js/3djs/assets/textures/general/bathroom-normal.jpg", function( normalTexture ){
                       var geometry = new THREE.BoxGeometry( 50, 50, 50 );

                       var material = new THREE.MeshBasicMaterial({
                           map: texture, 
                           normalMap: normalTexture // 只要将法向贴图赋给材质的normalMap属性即可
                       });
                       mesh = new THREE.Mesh( geometry, material );
                       scene.add( mesh );
                   } );
               });*/


            //12面体
        /*     var frontMainMaterial = new THREE.MeshPhongMaterial({ map: textures.window() })
               var polyhedron2 = new THREE.Mesh(new THREE.IcosahedronGeometry(150, 0), frontMainMaterial);
        //    var polyhedron2 = createMesh(new THREE.IcosahedronGeometry(50, 0), "stone.jpg");
            polyhedron2.position.x = 112;
            scene.add(polyhedron2);*/


            var cubeGeometry1 = new THREE.Geometry();
            //创建立方体的顶点
            var vertices = [
                new THREE.Vector3(-30,0,0), //v4    0 
                new THREE.Vector3(-22,0,10), //v5   1
                new THREE.Vector3(-22,0,-10), //v9  2
                new THREE.Vector3(-30,35,0) //v10   3
            ];
            cubeGeometry1.vertices = vertices;
            //创建立方的面
            var faces=[
                new THREE.Face3(0,1,3),
                new THREE.Face3(3,2,0),
                new THREE.Face3(2,0,1),
                new THREE.Face3(1,2,3)

            ];
            cubeGeometry1.faces = faces;
            //生成法向量
            cubeGeometry1.computeFaceNormals();
            var cubeMaterial = new THREE.MeshLambertMaterial({color: 0x6a5e74});
            cube = new THREE.Mesh(cubeGeometry1, cubeMaterial);
            cube.position.x = 0;
            cube.position.y = 340;
            cube.position.z = 0;
            scene.add(cube);

            var cubeGeometry2 = new THREE.Geometry();
            //创建立方体的顶点
            var vertices = [
                new THREE.Vector3(30,0,0), //v7    0 
                new THREE.Vector3(22,0,10), //v6   1
                new THREE.Vector3(22,0,-10), //v8  2
                new THREE.Vector3(30,35,0) //v11    3
            ];
            cubeGeometry2.vertices = vertices;
            //创建立方的面
            var faces=[

               new THREE.Face3(0,2,1),
               new THREE.Face3(2,1,3),
               new THREE.Face3(3,1,0),
               new THREE.Face3(3,0,2),

            ];
            cubeGeometry2.faces = faces;
            //生成法向量
            cubeGeometry1.computeFaceNormals();
            var cubeMaterial = new THREE.MeshLambertMaterial({color: 0x6a5e74});
            cube2 = new THREE.Mesh(cubeGeometry2, cubeMaterial);
            cube2.position.x = 0;
            cube2.position.y = 340;
            cube2.position.z = 0;
            scene.add(cube2);


            //顶部
            var cubeGeometry3 = new THREE.Geometry();
            //创建立方体的顶点
            var vertices = [
                new THREE.Vector3(-27,0,4), //    0 
                new THREE.Vector3(-27,0,-4), //   1
                new THREE.Vector3(-30,11,0), //  2
                new THREE.Vector3(30,11,0), //  3
                new THREE.Vector3(27,0,4), //    4
                new THREE.Vector3(27,0,-4), //    5 


            ];
            cubeGeometry3.vertices = vertices;
            //创建立方的面
            var faces=[

               new THREE.Face3(0,2,1),
               new THREE.Face3(1,2,3),
               new THREE.Face3(1,3,5),
               new THREE.Face3(3,2,0),
               new THREE.Face3(3,0,4),
               new THREE.Face3(3,4,5),


            ];
            cubeGeometry3.faces = faces;
            //生成法向量
            cubeGeometry1.computeFaceNormals();
            var cubeMaterial = new THREE.MeshLambertMaterial({color: 0x6a5e74});
            cube2 = new THREE.Mesh(cubeGeometry3, cubeMaterial);
            cube2.position.x = 0;
            cube2.position.y = 364;
            cube2.position.z = 0;
            scene.add(cube2);


        }

        function render() {
      //    stats.update();
            polyhedron.rotation.y = step += 0.01;

            // render using requestAnimationFrame
            requestAnimationFrame(render);
            webGLRenderer.render(scene, camera);
        }      


        return hospital
      }

    function createWindow() {
        var windowObj = new THREE.Object3D()
        var glassGeometry = new THREE.PlaneGeometry(20, 20)
        var glass = utils.makeMesh('phong', glassGeometry, 0x6a5e74)
        windowObj.add(glass)

        var windowBorderGeometry = new THREE.BoxBufferGeometry(22, 2, 2)
        var windowBorder = utils.makeMesh('phong', windowBorderGeometry, 0xffffff)

        var windowBorderTop = windowBorder.clone()
        windowBorderTop.position.y = 10
        windowObj.add(windowBorderTop)

        var windowBorderBottom = windowBorder.clone()
        windowBorderBottom.position.y = -10
        windowObj.add(windowBorderBottom)

        var windowBorderLeft = windowBorder.clone()
        windowBorderLeft.rotation.z = 0.5 * Math.PI
        windowBorderLeft.position.x = -10
        windowObj.add(windowBorderLeft)

        var windowBorderRight = windowBorderLeft.clone()
        windowBorderRight.position.x = 10
        windowObj.add(windowBorderRight)

        return windowObj
      }


    function loadcontainer() {
        var onProgress = function (xhr) {
            if (xhr.lengthComputable) {
                var percentComplete = xhr.loaded / xhr.total * 100;
                console.log(Math.round(percentComplete, 2) + '% downloaded');
            }
        };

        var onError = function (xhr) {
        };
        var mtlLoader = new THREE.MTLLoader();
        mtlLoader.load('/seismis/js/js/objs/5.mtl', function (materials) {
            materials.preload();
            var loader = new THREE.OBJLoader();
            loader.setMaterials(materials);

            loader.load('/seismis/js/js/objs/5.obj', function (object) {
                object.traverse(function (child) {
                    if (child instanceof THREE.Mesh) {
                        child.material.transparent = true;
                        child.material.opacity = 1;
                        if (child.material instanceof Array) {
                            for (var i = 0, length = child.material.length; i < length; i++)
                                child.material[i].transparent = true;
                        }
                    }
                });
            //    for (var i = 0; i < 3; i++) {

                    var temp = object.clone();
            //        temp.position.set(-100 + 300 * i, 150, 0);
                    temp.position.set(0 , 0, 0);
                    scene.add(temp);
            //    }
            }, onProgress, onError);
        })


    }

    function loadmale1() {
        var onProgress = function (xhr) {
            if (xhr.lengthComputable) {
                var percentComplete = xhr.loaded / xhr.total * 100;
                console.log(Math.round(percentComplete, 2) + '% downloaded');
            }
        };

        var onError = function (xhr) {
        };

        THREE.Loader.Handlers.add(/\.dds$/i, new THREE.DDSLoader());

        var mtlLoader = new THREE.MTLLoader();
        mtlLoader.setPath('/seismis/js/js/objs/male02/');
        mtlLoader.load('male02.mtl', function (materials) {
            console.log(materials);
            materials.preload();

            var objLoader = new THREE.OBJLoader();
            objLoader.setMaterials(materials);
            objLoader.setPath('/seismis/js/js/objs/male02/');
            objLoader.load('male02.obj', function (object) {

                object.position.y = 10;
                scene.add(object);

            }, onProgress, onError);

        });
    }

    // 没有考虑group,所以通过obj加载的物体无法点选
    function getMeshs() {
        var meshs = [];
        for (var i = 0, length = scene.children.length; i < length; i++) {
            if (scene.children[i] instanceof THREE.Mesh && scene.children[i].geometry instanceof THREE.BoxGeometry) {
                meshs.push(scene.children[i]);
            }
        }
        return meshs;
    }

    function onDocumentMouseDown(e) {
        e.preventDefault();
        rotate = false;
        //将鼠标点击位置的屏幕坐标转成threejs中的标准坐标,具体解释见代码释义
        var mouse = {};
        mouse.x = (e.clientX / window.innerWidth) * 2 - 1;
        mouse.y = -(e.clientY / window.innerHeight) * 2 + 1;
        //新建一个三维单位向量 假设z方向就是0.5
        //根据照相机,把这个向量转换到视点坐标系
        var vector = new THREE.Vector3(mouse.x, mouse.y, 0.5).unproject(camera);
        console.log(vector);
        var sub = vector.sub(camera.position);
        console.log(sub);
        var param2 = sub.normalize();
        var raycaster = new THREE.Raycaster(camera.position, param2);
        console.log("---------------------------------------------");

        //射线和模型求交,选中一系列直线
        var intersects = raycaster.intersectObjects(getMeshs());

        if (intersects.length > 0) {
            //选中第一个射线相交的物体
            scene.remove(outlineMesh);
            var SELECTED = intersects[0].object;
            var outlineMaterial2 = new THREE.MeshBasicMaterial({color: 0x00ff00, side: THREE.BackSide});
            outlineMesh = new THREE.Mesh(SELECTED.geometry.clone(), outlineMaterial2);
            outlineMesh.position.set(SELECTED.position.x, SELECTED.position.y, SELECTED.position.z);
            outlineMesh.scale.multiplyScalar(1.05);
            scene.add(outlineMesh);
        }

    }

1个回答

贴图的纹理路径是否设置正确了?

qq_41103448
qq_41103448 同意
大约 2 年之前 回复
fantasy1231
習慣沉默123 正确
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
threejs多面体加纹理,貌似只改变了颜色,求大神指点!

``` function initModel() { //辅助工具 var helper = new THREE.AxisHelper(10); scene.add(helper); var cubeGeometry = new THREE.Geometry(); //创建立方体的顶点 var vertices = [ new THREE.Vector3(0, 0, 20), //v0 new THREE.Vector3(30, 0, 0), //v1 new THREE.Vector3(0, 0,-20), //v2 new THREE.Vector3(-30, 0, 0), //v3 new THREE.Vector3(-30,220,0), //v4 new THREE.Vector3(-22,220,10), //v5 new THREE.Vector3(22,220,10), //v6 new THREE.Vector3(30,220,0), //v7 new THREE.Vector3(22,220,-10), //v8 new THREE.Vector3(-22,220,-10), //v9 ]; cubeGeometry.vertices = vertices; //创建立方的面 var faces=[ new THREE.Face3(0,1,2), new THREE.Face3(0,2,3), new THREE.Face3(3,0,5), new THREE.Face3(3,5,4), new THREE.Face3(3,4,9), new THREE.Face3(3,9,2), new THREE.Face3(2,9,8), new THREE.Face3(8,1,2), new THREE.Face3(8,7,1), new THREE.Face3(6,1,7), new THREE.Face3(6,0,1), new THREE.Face3(0,6,5), new THREE.Face3(5,6,7), new THREE.Face3(5,7,8), new THREE.Face3(5,8,9), new THREE.Face3(5,9,4), ]; cubeGeometry.faces = faces; //生成法向量 cubeGeometry.computeFaceNormals(); function createMesh(geom, imageFile) { // var texture = var mat = new THREE.MeshPhongMaterial(); mat.normalMap = new THREE.TextureLoader().load("/seismis/js/3djs/assets/textures/general/" + imageFile); // mat.specular = new THREE.Color(0xffffff); mat.needsUpdate = true; mat.shininess = 10; var mesh = new THREE.Mesh(geom, mat); return mesh; } //中间立体图形 var polyhedron1 = createMesh(cubeGeometry, "stone.jpg"); polyhedron1.position.x = 0; polyhedron1.position.y = 120; polyhedron1.position.z = 0; scene.add(polyhedron1); } ```

DX11画多边形还有多面体的问题

如何用循环函数输出的顶点坐标存到顶点缓存里,还有画多面体时候索引缓存。 网上代码调不通,而且缺少内容,本人新手DX入门,求大神解答。

已知空间多面体顶点坐标、连线关系和组成面信息,如何判定空间一点是在多面体内还是多面体外?

算法写空间随机多面体的生成,生成新的点的迭代过程中,如何判定一个点是在多面体外还是多面体内,已知多面体当前顶点信息,连线关系,多面体的面的关系(多面体的面都可以划分成三角形)

计算机图形学 有知道投影算法公式的大神嘛求救

求计算机图形学投影的算法公式!!!!!!!!!!!!!!!!!!!!!!!!!1

多面体的可见表面用数组的存储,怎么用C语言的程序的代码的编写的方式加以实现

Problem Description Look up the picture A , the big wood is cut into many small ones. As we know, a cuboid has three attributes: Length, Width and Height. In the picture B, C, D, there are different. The problem is so easy that you just need to count the kinds of the cuboids which can be cut from the big one. When we cut the big one into so many small one, we give every one a number to mark which is 1×1×1. Look at the picture B and C, they have the same length, width and height, but the marking numbers they have are different from each other, so B is different from C. B and D have the different attributes (any one attribute of the length, width and height is different), so they are also different. Input Many data cases come. In each case, there are three positive integers L, W, H, which are the length, the width and the height of the LWH. When L, W and H are all -1, the input is over, and you haven’t to handle them. Output For each case, you should print the number of any kinds of cuboids you can cut from the original big one, and any two ones must be of difference. And you have to make sure the length and the width and the height of the small one you cut are all integers. You can assume the final result will be in the range of the 32-integer, for that you can calculate it easily. Sample Input 5 3 4 2 2 2 1 1 2 -1 -1 -1 Sample Output 900 27 3

Cut Pyramid 多面体问题

Problem Description Yaya and maomao have a cake. And the shape of the cake is a pyramid. As the following picture, AB=AC=AD=BC=BD=CD=N. Now they want to cut the cake to two same volume pieces as following picture. And EF is on the plane BCD and parallel to CD. GH is on the plane ACD and parallel to CD, too. Now give you the length of CE=L, and ask you to calculate the length of AG. Input Input contains multiple cases each presented on a separate line. Each line contains two integer numbers N(5<=N<=1000),L (0<=L<=N). Output For each test case, your program should output the length of AG hold 2 digits after the decimal point. If the answer is absent, output “Oh, my god!”. Sample Input 1000 500 1000 200 Sample Output 500.00 Oh, my god!

计算机图形学中怎么给图形用渐变色填充

绘制三角形并用渐变色填充,颜色从下往上,由浅变深,有没有具体的代码可提供,急等

matlab怎么求投影坐标

请问这个模型中提到的坐标可以用什么matlab算法或者函数求?![图片说明](https://img-ask.csdn.net/upload/201704/16/1492342541_764719.png)

立方体多面体叠加,数字编号的排列的问题,计算每一个的编号,C语言的实现

Problem Description Look up the picture A , the big wood is cut into many small ones. As we know, a cuboid has three attributes: Length, Width and Height. In the picture B, C, D, there are different. The problem is so easy that you just need to count the kinds of the cuboids which can be cut from the big one. When we cut the big one into so many small one, we give every one a number to mark which is 1×1×1. Look at the picture B and C, they have the same length, width and height, but the marking numbers they have are different from each other, so B is different from C. B and D have the different attributes (any one attribute of the length, width and height is different), so they are also different. Input Many data cases come. In each case, there are three positive integers L, W, H, which are the length, the width and the height of the LWH. When L, W and H are all -1, the input is over, and you haven’t to handle them. Output For each case, you should print the number of any kinds of cuboids you can cut from the original big one, and any two ones must be of difference. And you have to make sure the length and the width and the height of the small one you cut are all integers. You can assume the final result will be in the range of the 32-integer, for that you can calculate it easily. Sample Input 5 3 4 2 2 2 1 1 2 -1 -1 -1 Sample Output 900 27 3

stl模型能否实现参数化?

最近刚开题,从犀牛里边导出来的stl模型,,老师让我试着参数化,想来想去只有放大缩小可以用偏置解决,但是真正的参数化问题:比如多面体边长增大或者减小还是没有头绪。来这儿问问各位大佬有没有办法,,谢谢各位驻足

opengl编写一个实现对象的一点透视投影程序(写出矩阵即可)

1、给定Po V N,编写一个生成将世界坐标变换到三维观察坐标的矩阵的程序。观察向上向量可以是不平行于N的任意方向​ 2、使用平行投影方法及任意指定的投影向量,编写从多面体顶点到投影坐标的变换程序(写出矩阵即可) 3、编写一个实现对象的一点透视投影程序(写出矩阵即可)

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

汽车行驶工况构建2019 D题.zip

1. 标记0与0之间的片段位置 2.标记所之间的毛刺数的位置 3.去掉毛刺数据 速度 并生成 新的数组 4.标记时间段 5. 0与0之间 如果有不连续的时间片段 置零 先找到时间间隔 再看间隔时间对应

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

专为程序员设计的数学课

<p> 限时福利限时福利,<span>15000+程序员的选择!</span> </p> <p> 1、原价 115 元,限时特价仅需 49 元!<br> 2、购课后添加学习助手(微信号:csdnxy68),按提示消息领取编程大礼包!并获取讲师答疑服务! </p> <p> <br> </p> <p> 套餐中一共包含5门程序员必学的数学课程(共47讲) </p> <p> 课程1:《零基础入门微积分》 </p> <p> 课程2:《数理统计与概率论》 </p> <p> 课程3:《代码学习线性代数》 </p> <p> 课程4:《数据处理的最优化》 </p> <p> 课程5:《马尔可夫随机过程》 </p> <p> <br> </p> <p> 哪些人适合学习这门课程? </p> <p> 1)大学生,平时只学习了数学理论,并未接触如何应用数学解决编程问题; </p> <p> 2)对算法、数据结构掌握程度薄弱的人,数学可以让你更好的理解算法、数据结构原理及应用; </p> <p> 3)看不懂大牛代码设计思想的人,因为所有的程序设计底层逻辑都是数学; </p> <p> 4)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; </p> <p> 5)想修炼更好的编程内功,在遇到问题时可以灵活的应用数学思维解决问题。 </p> <p> <br> </p> <p> 在这门「专为程序员设计的数学课」系列课中,我们保证你能收获到这些:<br> <br> <span> </span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">①价值300元编程课程大礼包</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">②应用数学优化代码的实操方法</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">③数学理论在编程实战中的应用</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">④程序员必学的5大数学知识</span> </p> <p class="ql-long-24357476"> <span class="ql-author-24357476">⑤人工智能领域必修数学课</span> </p> <p> <br> 备注:此课程只讲程序员所需要的数学,即使你数学基础薄弱,也能听懂,只需要初中的数学知识就足矣。<br> <br> 如何听课? </p> <p> 1、登录CSDN学院 APP 在我的课程中进行学习; </p> <p> 2、登录CSDN学院官网。 </p> <p> <br> </p> <p> 购课后如何领取免费赠送的编程大礼包和加入答疑群? </p> <p> 购课后,添加助教微信:<span> csdnxy68</span>,按提示领取编程大礼包,或观看付费视频的第一节内容扫码进群答疑交流! </p> <p> <img src="https://img-bss.csdn.net/201912251155398753.jpg" alt=""> </p>

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

IE主页被篡改修复

IE主页修复。IE主页被篡改修复。一键修复IE主页

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

土豆SDK(Java版)-非官方

由于土豆SDK一直建设中,最近几天抽空写了一套java的SDK。包含了现有的所有请求协议。本套SDK中仅提供了oAuth的方式(引用oAuth.net的java版示例),并没有在框架中实现,涉及到登录

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

【数据结构与算法综合实验】欢乐连连看(C++ & MFC)案例

这是武汉理工大学计算机学院数据结构与算法综合实验课程的第三次项目:欢乐连连看(C++ & MFC)迭代开发代码。运行环境:VS2017。已经实现功能:开始游戏、消子、判断胜负、提示、重排、计时、帮助。

数学建模竞赛D题“汽车行驶工况构建

第十六届“华为杯”数学建模竞赛D题“汽车行驶工况构建”论文。论文获得比赛国家二等奖,论文为原创,仅供参考。 关键词:数据处理;降维;聚类。

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

Android音视频开发全套

Android平台音视频开发全套,涉及:FFmpeg软解码解码、Mediacodec硬解码编码、Openssl音频播放、OpenGL ES视频渲染、RTMP推流等核心重要知识点。

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

想学好JAVA必须要报两万的培训班吗? Java大神勿入 如果你: 零基础想学JAVA却不知道从何入手 看了一堆书和视频却还是连JAVA的环境都搭建不起来 囊中羞涩面对两万起的JAVA培训班不忍直视 在职没有每天大块的时间专门学习JAVA 那么恭喜你找到组织了,在这里有: 1. 一群志同道合立志学好JAVA的同学一起学习讨论JAVA 2. 灵活机动的学习时间完成特定学习任务+每日编程实战练习 3. 热心助人的助教和讲师及时帮你解决问题,不按时完成作业小心助教老师的家访哦 上一张图看看前辈的感悟: &nbsp; &nbsp; 大家一定迫不及待想知道什么是极简JAVA学习营了吧,下面就来给大家说道说道: 什么是极简JAVA学习营? 1. 针对Java小白或者初级Java学习者; 2. 利用9天时间,每天1个小时时间; 3.通过 每日作业 / 组队PK / 助教答疑 / 实战编程 / 项目答辩 / 社群讨论 / 趣味知识抢答等方式让学员爱上学习编程 , 最终实现能独立开发一个基于控制台的‘库存管理系统’ 的学习模式 极简JAVA学习营是怎么学习的? &nbsp; 如何报名? 只要购买了极简JAVA一:JAVA入门就算报名成功! &nbsp;本期为第四期极简JAVA学习营,我们来看看往期学员的学习状态: 作业看这里~ &nbsp; 助教的作业报告是不是很专业 不交作业打屁屁 助教答疑是不是很用心 &nbsp; 有奖抢答大家玩的很嗨啊 &nbsp; &nbsp; 项目答辩终于开始啦 &nbsp; 优秀者的获奖感言 &nbsp; 这是答辩项目的效果 &nbsp; &nbsp; 这么细致的服务,这么好的氛围,这样的学习效果,需要多少钱呢? 不要1999,不要199,不要99,只要9.9 是的你没听错,只要9.9以上所有就都属于你了 如果你: 1、&nbsp;想学JAVA没有基础 2、&nbsp;想学JAVA没有整块的时间 3、&nbsp;想学JAVA没有足够的预算 还等什么?赶紧报名吧,抓紧抢位,本期只招300人,错过只有等时间待定的下一期了 &nbsp; 报名请加小助手微信:eduxy-1 &nbsp; &nbsp;

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

web网页制作期末大作业

分享思维,改变世界. web网页制作,期末大作业. 所用技术:html css javascript 分享所学所得

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 下载方式:电脑登录https://edu.csdn.net/course/detail/27513,点击右下方课程资料、代码、课件等打包下载

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

C++语言基础视频教程

C++语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍C++语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。 课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用C++语言解决问题,具备进一步学习利用C++开发应用程序的基础。

零基础学C#编程—C#从小白到大咖

本课程从初学者角度出发,提供了C#从入门到成为程序开发高手所需要掌握的各方面知识和技术。 【课程特点】 1 由浅入深,编排合理; 2 视频讲解,精彩详尽; 3 丰富实例,轻松易学; 4 每章总结配有难点解析文档。 15大章节,228课时,1756分钟与你一同进步!

编程实现学生基本信息管理程序

编程实现学生基本信息管理程序。学生基本信息包括:学号、姓名、性别、年龄、班级、学院、专业等。具体实现的管理功能如下: (1) 输入并显示多个学生的基本信息; (2) 可根据需要实现学生信息的添加; (

android 漂亮的UI界面 完整的界面设计

声明:这也是我学习时在网上下载的,鉴于分享精神,并且觉得很不错才上传上来的。。。。。 android 漂亮的UI界面 完整的界面设计 这是一个完整的UI设计,但是没写动作,这是一个公司程序员的公司任务

Anaconda详细安装及使用教程(带图文)

Anacond的介绍 Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。 Conda是一个开源的包、环境管理器,可以用于...

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Ubuntu18.04安装教程

Ubuntu18.04.1安装一、准备工作1.下载Ubuntu18.04.1 LTS2.制作U盘启动盘3.准备 Ubuntu18.04.1 的硬盘空间二、安装Ubuntu18.04.1三、安装后的一些工作1.安装输入法2.更换软件源四、双系统如何卸载Ubuntu18.04.1新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列...

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

多功能数字钟.zip

利用数字电子计数知识设计并制作的数字电子钟(含multisim仿真),该数字钟具有显示星期、24小时制时间、闹铃、整点报时、时间校准功能

Python数据分析师-实战系列

系列课程主要包括Python数据分析必备工具包,数据分析案例实战,核心算法实战与企业级数据分析与建模解决方案实战,建议大家按照系列课程阶段顺序进行学习。所有数据集均为企业收集的真实数据集,整体风格以实战为导向,通俗讲解Python数据分析核心技巧与实战解决方案。

navicat(内含激活码)

navicat支持mysql的可视化操作,内涵激活码,不用再忍受弹框的痛苦。

学生成绩管理系统(PHP + MYSQL)

做的是数据库课程设计,使用的php + MySQL,本来是黄金搭配也就没啥说的,推荐使用wamp服务器,里面有详细的使用说明,带有界面的啊!呵呵 不行的话,可以给我留言!

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问