中关村在线

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

电脑怎么将文件转换成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怎么回事

348 浏览 4 回答

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

1452 浏览 4 回答

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

3224 浏览 4 回答

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

5855 浏览 4 回答

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

2458 浏览 4 回答

扩展阅读

为极限而生 佳能EOS R1旗舰微单相机深度评测

评论 28

为极限而生 佳能EOS R1旗舰微单相机深度评测

狂拍J35A、J20、SU57 尼康Z8、Z6III珠海航展拍摄体验

评论 6

狂拍J35A、J20、SU57 尼康Z8、Z6III珠海航展拍摄体验

2024珠海航展尼康Z8+Z 100-400mm拍摄体验-倪晓康

评论 98

2024珠海航展尼康Z8+Z 100-400mm拍摄体验-倪晓康

入门微单新选择 带你了解尼康新相机Z50 II

评论 43

入门微单新选择 带你了解尼康新相机Z50 II

速度与激情 佳能EOS R5 II征战飞行大会

评论 18

速度与激情 佳能EOS R5 II征战飞行大会
热门问题

求推荐一款笔记本。工科研究生用,便于随身携带。平时做科研,处理数据,查阅文献。不玩网游和单机,至多玩棋牌游戏和影音。喜欢摄影,需要修图。附加:纠结要不要带数字键盘区。预算最多8000。尽量便宜些。

1.2万 浏览 6 回答

求推荐一款笔记本。工科研究生用,便于随身携带。平时做科研,处理数据,查阅文献。不玩网游和单机,至多玩棋牌游戏和影音。喜欢摄影,需要修图。附加:纠结要不要带数字键盘区。预算最多8000。尽量便宜些。

256gSSD是否够用?打算买个笔记本,办公为主,查阅文献等。不玩大型游戏,至多玩一些棋牌类游戏和影音娱乐。手里有2T移动硬盘,但也想在笔记本上存少量的电影。平时玩单反,处理图片比较多。

2.3万 浏览 4 回答

256gSSD是否够用?打算买个笔记本,办公为主,查阅文献等。不玩大型游戏,至多玩一些棋牌类游戏和影音娱乐。手里有2T移动硬盘,但也想在笔记本上存少量的电影。平时玩单反,处理图片比较多。

荣耀Magic7 Pro

9744 浏览 1 回答

荣耀Magic7 Pro

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

9448 浏览 7 回答

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

魔兽世界LR怎么把鼠标右键设为自动射击

1.4万 浏览 4 回答

魔兽世界LR怎么把鼠标右键设为自动射击

海尔售后服务24小时服务热线

2005 浏览 5 回答

海尔售后服务24小时服务热线

苹果手机怎么打开apk文件

2万 浏览 6 回答

苹果手机怎么打开apk文件

快手网页版不用下载直接打开

2231 浏览 6 回答

快手网页版不用下载直接打开

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

8046 浏览 4 回答

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

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

7296 浏览 6 回答

肿么找回QQ浏览器历史记录
最新问答

CAD自动保存文件.但是却打不开.应当怎么打开?是.sv$文件.后缀改了.dwg还是打不开.请大家帮帮忙~

9069 浏览 4 回答

CAD自动保存文件.但是却打不开.应当怎么打开?是.sv$文件.后缀改了.dwg还是打不开.请大家帮帮忙~

word表格中文字选居中但还是感觉偏下怎么处理?

1.5万 浏览 5 回答

word表格中文字选居中但还是感觉偏下怎么处理?

将许多照片用PS拼成心形,我要具体的步骤

7691 浏览 4 回答

将许多照片用PS拼成心形,我要具体的步骤

请问 表格 一竖列 每一格里有不同的字 在后面统一加上同样的字 肿么操作

3712 浏览 5 回答

请问 表格 一竖列 每一格里有不同的字 在后面统一加上同样的字 肿么操作

打印机不能打印提示rpc服务器不可用怎么处理

5685 浏览 5 回答

打印机不能打印提示rpc服务器不可用怎么处理
举报
举报成功

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

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

更多频道

频道导航
辅助工具