精华内容
下载资源
问答
  • 设计一个立方体的类Redcubic,包括三个实例属性:长、宽、高;一个类属性:立方体颜色; 随机生成或者手工输入两个立方体长宽高,打印出他们的颜色、表面积。 import random class Redcubic: color = 'red' ...

    设计一个立方体的类Redcubic,包括三个实例属性:长、宽、高;一个类属性:立方体颜色;

    随机生成或者手工输入两个立方体长宽高,打印出他们的颜色、表面积。

    import random 
    
    class Redcubic:
        color = 'red'
        
        def __init__(self, c, k, g):
            self.chang = c
            self.kuan = k
            self.gao = g
            self.mianji = 2 * (c * k + c * g + k * g)
    
    
    r1 = Redcubic(random.randint(1,10) , random.randint(1,10) , random.randint(1,10) )
    r2 = Redcubic(random.randint(1,10) , random.randint(1,10) , random.randint(1,10) )
    
    print(r1.chang, r1.kuan, r1.gao, r1.mianji, r1.color)
    print(r2.chang, r2.kuan, r2.gao, r2.mianji, r2.color)
    
    展开全文
  • 1.透视/景深效果 左手法则:大拇指指向当前坐标轴下方向,手指环绕方向就是正方向 perspective(length) 为一个元素设置三...比如你要建立一个立方体长宽高都是200px。如果你perspective < 200px ,...

    1.透视/景深效果

    左手法则:大拇指指向当前坐标轴的下方向,手指环绕的方向就是正方向

    1. perspective(length) 为一个元素设置三维透视的距离。仅作用于元素的后代,而不是其元素本身。当perspective:none/0;时,相当于没有设perspective(length)。比如你要建立一个小立方体,长宽高都是200px。如果你的perspective < 200px ,那就相当于站在盒子里面看的结果,如果perspective 非常大那就是站在非常远的地方看(立方体已经成了小正方形了),意味着perspective 属性指定了观察者与z=0平面的距离,使具有三维位置变换的元素产生透视效果
    2. perspective-origin属性规定了镜头在平面上的位置。默认是放在元素的中心
    3. transform-style:使被转换的子元素保留其 3D 转换(需要设置在父元素中):
      • transform-style:flat 子元素将不保留其 3D 位置-平面方式。
      • transform-style:preserve-3d 子元素将保留其 3D 位置—立体方式。

    2.制作立方体

    - 插入图片

    html代码:

    <body>
      <div class="container">
        <div class="front"></div>
        <div class="back"></div>
        <div class="left"></div>
        <div class="right"></div>
        <div class="top"></div>
        <div class="bottom"></div>
      </div>
    </body>
    

    css代码:

    <style>
        .container {
          width: 200px;
          height: 200px;
          margin: 200px auto;
          position: relative;
          /* 使被转换的子元素保留其 3D 转换(需要设置在父元素中): */
          transform-style: preserve-3d;
          /* 给立方体添加旋转动画 */
          animation: rotate 20s linear infinite;
        }
    
        @keyframes rotate {
          0% {
            transform: rotateX(0deg) rotateY(0deg);
          }
    
          50% {
            transform: rotateX(-10deg) rotateY(-360deg);
          }
    
          60% {
            transform: rotateX(-10deg) rotateY(-340deg);
          }
    
          100% {
            transform: rotateX(-360deg) rotateY(-340deg);
          }
        }
    
        .container>div {
          width: 200px;
          height: 200px;
          opacity: 0.5;
          position: absolute;
          left: 0;
          top: 0;
        }
    
        .front {
          background-color: red;
          transform: translateZ(100px);
        }
    
        .back {
          background-color: green;
          transform: translateZ(-100px) rotateY(180deg);
        }
    
        .left {
          background-color: purple;
          transform: translateX(100px) rotateY(90deg);
        }
    
        .right {
          background-color: pink;
          transform: translateX(-100px) rotateY(-90deg);
        }
    
        .top {
          background-color: orangered;
          transform: translateY(-100px) rotateX(90deg);
        }
    
        .bottom {
          background-color: yellowgreen;
          transform: translateY(100px) rotateX(-90deg);
        }
      </style>
    
    web前端交流QQ群:327814892
    展开全文
  • 已知空间上一点是立方体的一个顶点(这里假设该点为最靠近坐标原点的点),和长宽高值。如何再python中画出改立方体? matplotlib可以实现么?
  • 透视/景深效果 a) perspective(length)为...比如你要建立一个立方体长宽高都是200px,如果你perspective&lt;200px,那就相当于站在盒子里面看结果,如果perspective非常大,那就相当于站在非常远地方看,...

    透视/景深效果
    a) perspective(length)为一个元素设置三位透视的距离。仅作用于元素的后代,而不是元素本身。
    当perspective:none/0时,相当于没有设置perspective。比如你要建立一个立方体,长宽高都是200px,如果你的perspective<200px,那就相当于站在盒子里面看的结果,如果perspective非常大,那就相当于站在非常远的地方看,意味着perspective属性指定了观察者与Z=0平面的距离,使具有三维位置变换的元素产生透视效果。

    b) perspective-origin属性规定了镜头在平面上的位置,默认是放在元素的中心。
    c) transfrom-style:使被转换的子元素保留其3D转换(需要设置在父元素中)
        flat        子元素将不保其3D位置--平面方式。
        preseve-3d    子元素将保留其3D位置--立方结构。

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title>立方体,生成6个面,旋转移动</title>
    		<style type="text/css">
    			* {
    				padding: 0;
    				margin: 0;
    			}
    			.box {
    				width: 200px;
    				height: 200px;
    				margin: 100px auto;
    				position: relative;
    				/* 让box默认旋转,方便观察 */
    				transform: rotate3d(1, 1, 0, -30deg);
    				/* 让子元素保留,3d变换之后的效果 */
    				transform-style: preserve-3d;
    				/* 添加透视景深效果 */
    				perspective: 214px;
    				/* 设置透视的观察角度 */
    				perspective-origin: -100px 100px;
    			}
    
    			.box>div {
    				position: absolute;
    				width: 200px;
    				height: 200px;
    			}
    			.front {
    				background-color: red;
    				transform: translateZ(100px);
    			}
    			.back {
    				background-color: yellow;
    				transform: translateZ(-100px) rotateY(180deg);
    			}
    			.left {
    				background-color: blue;
    				/* 移动100px+旋转 */
    				transform: translateX(-100px) rotateY(-90deg);
    			}
    			.right {
    				background-color: pink;
    				transform: translateX(100px) rotateY(90deg);
    			}
    			.top {
    				background-color: purple;
    				transform: translateY(-100px) rotateX(90deg);
    			}
    			.bottom {
    				background-color: green;
    				transform: translateY(100px) rotateX(-90deg);
    			}
    		</style>
    	</head>
    	<body>
    		<!-- .name 快速生成div,tab -->
    		<div class="box">
    			<div class="front">front</div>
    			<div class="back">back</div>
    			<div class="left">left</div>
    			<div class="right">right</div>
    			<div class="top">top</div>
    			<div class="bottom">bottom</div>
    		</div>
    	</body>
    </html>
    

     

     

    展开全文
  • OpenGL3.3立方体贴图

    2020-04-09 03:15:41
    立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面 他的一个优点是可以通过他的坐标直接当作他的纹理坐标(一个长宽高为1的正方体盒子,以原点为中心,他的坐标就是他的纹理坐标) 如果...

    立方体贴图
    立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面
    他的一个优点是可以通过他的坐标直接当作他的纹理坐标(一个长宽高为1的正方体盒子,以原点为中心,他的坐标就是他的纹理坐标)

    如果我们有一个纹理位置的数组或者vector,我们就可以从GL_TEXTURE_CUBE_MAP_POSITIVE_X开始遍历它们,在每个迭代中对枚举值加1,遍历了整个纹理目标glTexImage2D(
    GL_TEXTURE_CUBE_MAP_POSITIVE_X + i,
    0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data
    );
    具体做法:

    vector<std::string> faces
        {
            FileSystem::getPath("resources/textures/skybox/right.jpg"),
            FileSystem::getPath("resources/textures/skybox/left.jpg"),
            FileSystem::getPath("resources/textures/skybox/top.jpg"),
            FileSystem::getPath("resources/textures/skybox/bottom.jpg"),
            FileSystem::getPath("resources/textures/skybox/front.jpg"),
            FileSystem::getPath("resources/textures/skybox/back.jpg")
        };//创建一个存储纹理路径的向量
        unsigned int cubemapTexture = loadCubemap(faces)//将向量带进函数
    unsigned int loadCubemap(vector<std::string> faces)//函数具体实现
    {
        unsigned int textureID;
        glGenTextures(1, &textureID);
        glBindTexture(GL_TEXTURE_CUBE_MAP, textureID);//创建绑定纹理对象
    
        int width, height, nrChannels;
        for (unsigned int i = 0; i < faces.size(); i++)
        {
            unsigned char *data = stbi_load(faces[i].c_str(), &width, &height, &nrChannels, 0);//获取每张图片的纹理信息
            if (data)
            {
                glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);//将信息传递给纹理
                stbi_image_free(data);
            }
            else
            {
                std::cout << "Cubemap texture failed to load at path: " << faces[i] << std::endl;
                stbi_image_free(data);
            }
        }
        glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
        glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
        glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
        glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
        glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
    
        return textureID;
    }
    

    立方体贴图实际上就是建立一个纹理贴图的类似数组的东西 可以从第一个地址开始遍历后面的纹理
    首先就是建立一个以原点为中心的长度为1的正立方体 因为每个长度最大都是1 最小是0 所以可以把每个面的坐标当作纹理坐标来填写
    然后通过对深度坐标的转换可以使天空盒的深度值变为1 也就是只要前面有物体就可以遮挡天空盒
    再让天空盒以人物位置为中心跟随人物移动(但是网站上的什么移除位移矩阵转换 留下旋转缩放之类的矩阵就不知道是什么意思 感觉有点相反的感觉)

    glReadPixels()是从OpenGL的帧缓冲区(FBO)读取像素数据,并将数据写(pack)入PBO中

    采样器改为samplerCube
    glBindTexture(GL_TEXTURE_CUBE_MAP, textureID);//GL_TEXTURE_CUBE_MAP参数是立方体贴图的参数

    glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS)打开无缝立方体映射滤波 OpenGL就会使用相邻的立方体映射面上的纹素来获取滤波后的纹素结果

    展开全文
  • 【BZOJ4312】立方体

    2016-04-05 16:21:11
    Z 代表组数据,表示立方体的长宽高加 1 Output第 i 行数据输出Case#i: 第i组数据的答案Sample Input2 1 22 2 2 Sample OutputCase #1: 4Case #2: 15 HINTx,y,z最早的时候我以为这题是姿势非常高的数据结构...
  • Z 代表一组数据,表示立方体的长宽高加 1Output第 i 行数据输出Case#i: 第i组数据的答案Sample Input2 1 22 2 2 Sample OutputCase #1: 4Case #2: 15 HINTx,y,z郑州培训D3考试题T2,Orzydc大概是第一个正儿八经做的...
  • 立方体是一种常见...CZML描述基本的立方体时,有一个基本位置信息和尺寸大小(长宽高) { { "id":"document", "name":''box" "version":"1.0" }, { "id":"box1", "position":{ "cartographicDegr...
  • p1164【立方体求和】

    2017-08-18 09:36:00
    他发现如果把这块西瓜平均地分成m*n*h块1立方厘米小正方体,那么每一小块都会有一个营养值(可能为负,因为西瓜是有可能坏掉,但是绝对值不超过200).现在SubRaY决定从这m*n*h立方厘米西瓜中切出mm*nn*hh立方厘米...
  • 如果我们在位置\((x_0,y_0,z_0)\)钦定了一个极大数\(p\),那么我们需要把\(x=x_0\),\(y=y_0\)与\(z=z_0\)三个平面交中填上比\(p\)小数字,这样,剩下正方体就成了一个长宽高分别为\((n-1)(m-1)(l-1)...
  • 25. 通过包围盒将物体移到世界坐标中心 读取OBJ例子,官方文档有,...官网介绍其为“在3D空间中表示一个盒子或立方体。其主要用于表示物体在世界坐标中边界框。” 语句2获取到LongMenJia包围盒,即可以把模型Lon
  • Multiple Target是一个矩形盒子,有六个面,尺寸需要设置3个,分别是长宽高。这个功能和之前说Cylinder Target类似,只要可以用在包装盒中,同样具有虚实遮挡功能。但是,相对于Cylinder Target来说,她有...
  • 题意: 给你n个立方体,让你以长宽为底,...一个立方体交换长宽高可变成3种立方体,然后分别存起来后,按长宽高大小排序,dp[i]则表示以第i个立方体为底能获得最大高。 代码:用#include #include #include <cstr
  • 我们知道,Cube的长宽高都是1米,它的Position在它的正中心。 那么立方体内任意一点就是{(x,y,z)|-0.5<x<...所以,可以自由摆放/缩放一个立方体用来表示一个范围,然后在取值范围内随机取点生...
  • 一种立方体有三种摆放方式,假设一个立方体的长宽高为a、b、c,则三种摆放方式分别是以a、b、c为高的摆放方式,固一种立方体可以看成三个立方体 下面就是建立DAG了,如果一个立方体的底面长宽严格大于另一个底面长宽...
  • HDU 1069 Monkey and Banana

    2017-01-22 22:21:00
    题意:给出立方体,求出所能搭成的...思路:每输入一个立方体的长宽高数据,长宽高各自排列组合可以形成6个立方体。用sort函数根据立方体的长从小到大进行排序,次要排序条件为宽。 1 #include<iostream>...
  • 面向对象设计案例

    2020-04-06 17:06:02
    计算一个立方体的面积 1:产生一个类,私有其长宽高,public里中写入设置长宽高函数和面积函数 2:写一个子函数text01,来传递此立方体的长宽高,和面积公式函数 3:主程序main输出text01; `` #include<...
  • 已知一个长宽高分别为m,n,h的立方体,且利比阿尼每一立方体都有一定的价值,要求求得一个子立方体,使得子立方体内部的每个小立方体的权值之和最大,  思想就是,将三维的子立方体转换成一维的处理,用rec[i,j,k]...
  • 1.一个立方体的长宽高可以有六种形式。 2.一个立方体可以用六种状态来储存。 3.每种状态的值就是它的高。 4.d(i)表示第i种状态它的高。 5.如果有x种立方体,那么就有6*x种状态,那么把这些状态排序 把长和宽大的...
  • uva437 - The Tower of Babylon(DAG上DP)

    千次阅读 2014-08-06 20:55:03
    现在希望你将这些立方题叠起来,使得最后的高度最大,并且这些立方体是可以无限次使用的,但是一个立方体要在另一个立方体的上面的话是需要满足这个立方体的底面是可以完全包含在下面的那个立方体的底面。...
  • 现在希望你将这些立方题叠起来,使得最后的高度最大,并且这些立方体是可以无限次使用的,但是一个立方体要在另一个立方体的上面的话是需要满足这个立方体的底面是可以完全包含在下面的那个立方体的底面。...
  • 题意:给出三个数x, y, z,分别对应一个立方体的长宽高; 要求打印出这么一个立方体; 根据题目样例不难找出规律; 首先上部分就是答打印上面,下部分打印下面最后补齐边角的点就可以了; #include &lt;...
  • 题目大意:给出塔的长宽高(立方体),每个塔长宽高可...解题策略:每个立方体,长宽高因为可以互换,所以可以将每一个立方体可拓展为3! = 6种立方体,全部存储,并按照底面积降序排列,然后以题意要求求出变形LIS。
  • 2020-10-16

    2020-10-16 15:28:38
    将这个立方体的长宽高分别乘以2,这个大立方体命名为t2。 (1).计算出t2的体积是t1体积的多少倍? (2).计算出t2的表面积是t1表面积的多少倍? 请使用面向对象的思想编程 #面向对象的一个题目,可以试试其他做法! ...
  • 题目大意:一个大的立方体是由多个单位立方体形成的,给出大立方体的长宽高,问一条过体对角线的激光穿过多少单位立方体。思路:谈不上思路了,只是看了一篇不错的博文,给大家推荐一下,讲的是立方体的体对角线穿过...
  • 学号xxxxxx 实验内容 eq \o\ac,1)编程创建一个Box类要求定义三个实例变量分别表示立方体的长宽和高定三个构造方法(必须包含一个无参构造方法一个满参构造方法)对这3个变量进行初始化然后定义一个方法求立方体的体积...
  • 简介本全景前期是使用六张图片拼成的一个立方体,天空盒类型。相机位置处于0,0,0位置,外面设置了一个长宽高都为200立方体盒子。只要有相应照片,把视角封闭在一个相对封闭空间中,我们查看效果,就...
  • 思路: 把一个立方体变成6个立方体 ,即长宽高都不一样。 定义状态: d[i] 为以下标为i木块为起点所能摞最高高度,记忆化搜索就可以了。 代码(有点长) #include #include #include using ...
  • 动态2

    2020-04-21 00:17:00
    有很多不同的立方体(长宽高不同),每种都有无穷多,将他们层层叠加起来,要求上门面块的立方体的底面要小于下面的块(长、宽都严格小于),问最多能搭建多高。 Sample Input 1 10 20 30 2 6 8 10 5 5 5 ...
  • 有n种立方体,每种都有无穷多个,要求选一些立方体落成一根尽量高的柱子(可以任选那边作为长宽高),使得每一个立方体的底面长宽严格小于它下方的立方体底面的宽和长。 分析:书上讲解的很详细,书上的方法是可以用...

空空如也

空空如也

1 2 3 4 5
收藏数 86
精华内容 34
关键字:

一个立方体的长宽高