1

我在Processing中写了一个程序,导入一个STL文件,然后根据需要进行3D旋转。

但是我面临一个问题,即导入图像非常丰富多彩且尺寸很小。它看起来与原来的非常不同。

你能帮我解决这个问题吗?编码和图像如下

import toxi.geom.*;
import toxi.geom.mesh.*;

import toxi.processing.*;

TriangleMesh mesh;
ToxiclibsSupport gfx;

void setup() {
  size(displayWidth, displayHeight,P3D);
  mesh=(TriangleMesh)new STLReader().loadBinary(sketchPath("check.stl"),STLReader.TRIANGLEMESH);
  gfx=new ToxiclibsSupport(this);
}

void draw() {
  background(51);
  translate(width/2,height/2,0);
  rotateX(mouseY*0.01);
  rotateY(mouseX*0.01);

  gfx.mesh(mesh,false);
}

结果我得到 我想要的结果

4

1 回答 1

1

我也有和你一样的困惑,但是在滚动参考页面后,Processing.org 我发现了几个可以对 STL 对象产生积极影响的命令。一些命令是:

  1. 定向光
  2. 无中风

  3. 规模

通过扩展和收缩顶点来增加或减小形状的大小

您的上述问题与这些命令直接相关,因此只需根据您的要求进行编辑

import toxi.geom.*;
import toxi.geom.mesh.*;
import toxi.processing.*;

TriangleMesh mesh;
ToxiclibsSupport gfx;

void setup() {
  size(displayHeight, displayWidth,P3D);
  mesh=(TriangleMesh)new STLReader().loadBinary(sketchPath("check.stl"),STLReader.TRIANGLEMESH);
  gfx=new ToxiclibsSupport(this);

}

void draw() {

  background(51);
  translate(width/2,height/2,0);
  rotateX(mouseY*0.01);
  rotateY(mouseX*0.01);
  directionalLight(192, 168, 128,0, -1000, -0.5);
  directionalLight(255, 64, 0, 0.5f, -0.5f, -0.1f);
  noStroke();
scale(3);  
  gfx.mesh(mesh,false);
}

程序运行后的图像在此处输入图像描述

于 2015-03-10T20:43:56.157 回答