中关村在线

首页 排行 新品 问答 下载 论坛 手机 笔记本 数码相机 主板 显卡 平板电脑 更多

电脑怎么将文件转换成stl文件

举报
ST
讨论回答 (5)
qq348579460
505198568
1.stl 文件是在计算机图形应用系统中,用于表示三角形网格的一种文件格式。 它的文件格式非常简单, 应用很广泛。STL只能用来表示封闭的面或者体,stl文件有两种:一种是ASCII明码格式,另一种是二进制格式。

2.对于程序来说,不管后缀名如何,文件分为两种类型:文本文件和二进制文件。
C语言里有一系列文件操作函数。区分文本和二进制文件,需要在打开文件时设置不同的控制符mode的变量即可。

3.fopen的函数原型:FILE * fopen(const char * path,const char * mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据。
rw+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
23285012
elvisqu
if (!Detector.webgl) Detector.addGetWebGLMessage();

var container, stats;

var camera, cameraTarget, scene, renderer;

init();
animate();

function init() {

container = document.createElement('div');
document.body.appendChild(container);

camera = new THREE.PerspectiveCamera(35, window.innerWidth / window.innerHeight, 1, 15);
camera.position.set(3, 0.15, 3);

cameraTarget = new THREE.Vector3(0, -0.25, 0);

scene = new THREE.Scene();
scene.fog = new THREE.Fog(0x72645b, 2, 15);

// Ground
var plane = new THREE.Mesh(
new THREE.PlaneBufferGeometry(40, 40),
new THREE.MeshPhongMaterial({
ambient: 0x999999,
color: 0x999999,
specular: 0x101010
})
);
plane.rotation.x = -Math.PI / 2;
plane.position.y = -0.5;
scene.add(plane);

plane.receiveShadow = true;

// ASCII file
var loader = new THREE.STLLoader();
loader.addEventListener('load', function(event) {

var geometry = event.content;
var material = new THREE.MeshPhongMaterial({
ambient: 0xff5533,
color: 0xff5533,
specular: 0x111111,
shininess: 200
});
var mesh = new THREE.Mesh(geometry, material);

mesh.position.set(0, -0.25, 0.6);
mesh.rotation.set(0, -Math.PI / 2, 0);
mesh.scale.set(0.5, 0.5, 0.5);

mesh.castShadow = true;
mesh.receiveShadow = true;

scene.add(mesh);

});
loader.load('/uploads/141201/stl/ascii/slotted_disk.stl');

// Binary files
var material = new THREE.MeshPhongMaterial({
ambient: 0x555555,
color: 0xAAAAAA,
specular: 0x111111,
shininess: 200
});

var loader = new THREE.STLLoader();
loader.addEventListener('load', function(event) {

var geometry = event.content;
var mesh = new THREE.Mesh(geometry, material);

mesh.position.set(0, -0.37, -0.6);
mesh.rotation.set(-Math.PI / 2, 0, 0);
mesh.scale.set(2, 2, 2);

mesh.castShadow = true;
mesh.receiveShadow = true;

scene.add(mesh);

});
loader.load('/uploads/141201/stl/binary/pr2_head_pan.stl');

var loader = new THREE.STLLoader();
loader.addEventListener('load', function(event) {

var geometry = event.content;
var mesh = new THREE.Mesh(geometry, material);

mesh.position.set(0.136, -0.37, -0.6);
mesh.rotation.set(-Math.PI / 2, 0.3, 0);
mesh.scale.set(2, 2, 2);

mesh.castShadow = true;
mesh.receiveShadow = true;

scene.add(mesh);

});
loader.load('/uploads/141201/stl/binary/pr2_head_tilt.stl');

// Colored binary STL
var loaderColored = new THREE.STLLoader();
loaderColored.addEventListener('load', function(event) {

var geometry = event.content;

var meshMaterial = material;
if (geometry.hasColors) {
meshMaterial = new THREE.MeshPhongMaterial({
opacity: geometry.alpha,
vertexColors: THREE.VertexColors
});
}

var mesh = new THREE.Mesh(geometry, meshMaterial);

mesh.position.set(0.5, 0.2, 0);
mesh.rotation.set(-Math.PI / 2, Math.PI / 2, 0);
mesh.scale.set(0.3, 0.3, 0.3);

mesh.castShadow = true;
mesh.receiveShadow = true;

scene.add(mesh);

});
loaderColored.load('/uploads/141201/stl/binary/colored.stl');

// Lights
scene.add(new THREE.AmbientLight(0x777777));

addShadowedLight(1, 1, 1, 0xffffff, 1.35);
addShadowedLight(0.5, 1, -1, 0xffaa00, 1);

// renderer

renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer.setSize(window.innerWidth, window.innerHeight);

renderer.setClearColor(scene.fog.color, 1);

renderer.gammaInput = true;
renderer.gammaOutput = true;

renderer.shadowMapEnabled = true;
renderer.shadowMapCullFace = THREE.CullFaceBack;

container.appendChild(renderer.domElement);

// stats

stats = new Stats();
stats.domElement.style.position = 'absolute';
stats.domElement.style.top = '0px';
container.appendChild(stats.domElement);
window.addEventListener('resize', onWindowResize, false);
}

function addShadowedLight(x, y, z, color, intensity) {
var directionalLight = new THREE.DirectionalLight(color, intensity);
directionalLight.position.set(x, y, z)
scene.add(directionalLight);

directionalLight.castShadow = true;
// directionalLight.shadowCameraVisible = true;

var d = 1;
directionalLight.shadowCameraLeft = -d;
directionalLight.shadowCameraRight = d;
directionalLight.shadowCameraTop = d;
directionalLight.shadowCameraBottom = -d;

directionalLight.shadowCameraNear = 1;
directionalLight.shadowCameraFar = 4;

directionalLight.shadowMapWidth = 1024;
directionalLight.shadowMapHeight = 1024;

directionalLight.shadowBias = -0.005;
directionalLight.shadowDarkness = 0.15;

}

function onWindowResize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
}

function animate() {
requestAnimationFrame(animate);
render();
stats.update();
}

function render() {
var timer = Date.now() * 0.0005;
camera.position.x = Math.cos(timer) * 3;
camera.position.z = Math.sin(timer) * 3;
camera.lookAt(cameraTarget);
renderer.render(scene, camera);
}
wenily561216
展开查看全部 5 条讨论
相关问题

登陆苹果电脑时提示STATUS_CODE_ERROR怎么回事

349 浏览 4 回答

solidworks打开30多兆的stp,到最后软件直接卡死,用公司的笔记本就能打开,电脑配置是有什么问题么

1458 浏览 4 回答

想重新安装WIN8系统,如何区分PE或者GHOST安装方式以及标准的安装方式呢?谢谢~~

3227 浏览 4 回答

电脑上有CSGO也有steam但还是显示要重新安装怎么办

5856 浏览 4 回答

求一台貌美的笔记本电脑(最好有粉色的啊...)要求不高 steam的游戏就算了吧 只玩lol 和dnf 能用Word、excel等 考虑价格在5000左右

2458 浏览 4 回答

扩展阅读

2000元预算新选择 瀚铠Radeon RX 7650 GRE 8G D6评测

评论 7

2000元预算新选择 瀚铠Radeon RX 7650 GRE 8G D6评测

手机进水速救指南:别再往米里插了

评论 0

手机进水速救指南:别再往米里插了

手机端接入DeepSeek-R1,纯小白教程,三分钟搞定

评论 4

手机端接入DeepSeek-R1,纯小白教程,三分钟搞定

DeepSeek使用小技巧,会提问才会用AI

评论 5

DeepSeek使用小技巧,会提问才会用AI

14英寸轻薄本的性能与美学平衡之道,华硕灵耀14 Air骁龙版评测

评论 7

14英寸轻薄本的性能与美学平衡之道,华硕灵耀14 Air骁龙版评测
热门问题

免费韩国漫画在线观看的地址有么?

8068 浏览 5 回答

免费韩国漫画在线观看的地址有么?

荣耀Magic7 Pro

9866 浏览 1 回答

荣耀Magic7 Pro

人和驴用什么姿势

3617 浏览 4 回答

人和驴用什么姿势

肿么找回QQ浏览器历史记录

7313 浏览 6 回答

肿么找回QQ浏览器历史记录

最新cpu天梯图

21.6万 浏览 5 回答

最新cpu天梯图

笔记本数字键盘怎么用

9.3万 浏览 5 回答

笔记本数字键盘怎么用

王者荣耀2.7灵宝市集高售价兑换码获取方法?

5510 浏览 6 回答

王者荣耀2.7灵宝市集高售价兑换码获取方法?

有一样东西,比雪还白,比黑板还黑,男的一天用三次,女的一辈子用一次,是什么?

6443 浏览 7 回答

有一样东西,比雪还白,比黑板还黑,男的一天用三次,女的一辈子用一次,是什么?

手机在哪里登录192.168.1.1设定页面?

9462 浏览 7 回答

手机在哪里登录192.168.1.1设定页面?

恒力集团董事长儿子娶了谁

7822 浏览 7 回答

恒力集团董事长儿子娶了谁
最新问答

手机选购,VivoX200等多款机型怎么选?

7660 浏览 5 回答

手机选购,VivoX200等多款机型怎么选?

绝区零,进阶鸣徽种类全解析?

4946 浏览 7 回答

绝区零,进阶鸣徽种类全解析?

原神丽莎后期强度如何?

6509 浏览 6 回答

原神丽莎后期强度如何?

接老公遇PHP项目Bug解决过程是怎样的?

5270 浏览 5 回答

接老公遇PHP项目Bug解决过程是怎样的?

原神大剑平地跳劈方法分享?

1743 浏览 6 回答

原神大剑平地跳劈方法分享?
举报
举报成功

经过核实后将会做出处理,感谢您为社区和谐做出贡献。

请选择删除原因
删除成功
确定推荐该回答?
推荐成功

更多频道

频道导航
辅助工具