C++读取obj

提示:以下是本篇文章正文内容,下面案例可供参考

一、obj文件信息

# This file uses centimeters as units for non-parametric coordinates.

mtllib 1.mtl
g default
v -0.500000 -0.500000 0.500000
v 0.500000 -0.500000 0.500000
v -0.500000 0.500000 0.500000
v 0.500000 0.500000 0.500000
v -0.500000 0.500000 -0.500000
v 0.500000 0.500000 -0.500000
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
v 0.000000 0.867287 0.000000
vt 0.375000 0.000000
vt 0.625000 0.000000
vt 0.375000 0.250000
vt 0.625000 0.250000
vt 0.375000 0.500000
vt 0.625000 0.500000
vt 0.375000 0.750000
vt 0.625000 0.750000
vt 0.375000 1.000000
vt 0.625000 1.000000
vt 0.875000 0.000000
vt 0.875000 0.250000
vt 0.125000 0.000000
vt 0.125000 0.250000
vt 0.500000 0.375000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.805928 -0.592014
vn 0.000000 0.805928 -0.592014
vn 0.000000 0.805928 -0.592014
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 0.000000 -1.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 -1.000000 0.000000
vn 1.000000 0.000000 0.000000
vn 1.000000 0.000000 0.000000
vn 1.000000 0.000000 0.000000
vn 1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
vn 0.592014 0.805928 0.000000
vn 0.592014 0.805928 0.000000
vn 0.592014 0.805928 0.000000
vn -0.592014 0.805928 0.000000
vn -0.592014 0.805928 0.000000
vn -0.592014 0.805928 0.000000
vn 0.000000 0.805928 0.592014
vn 0.000000 0.805928 0.592014
vn 0.000000 0.805928 0.592014
s off
g pCube1
usemtl initialShadingGroup
f 1/1/1 2/2/2 4/4/3 3/3/4
f 5/5/5 9/15/6 6/6/7
f 5/5/8 6/6/9 8/8/10 7/7/11
f 7/7/12 8/8/13 2/10/14 1/9/15
f 2/2/16 8/11/17 6/12/18 4/4/19
f 7/13/20 1/1/21 3/3/22 5/14/23
f 9/15/24 4/4/25 6/6/26
f 3/3/27 9/15/28 5/5/29
f 3/3/30 4/4/31 9/15/32

  • 注意顶点索引从1开始

在这里插入图片描述

二、动态二维数组形式储存数据

在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C语言是一种高级编程语言,它经过编译后会生成机器可读的目标代码,通常是二进制文件。因此,C语言的反编译就是将这些二进制文件转换回可读的源代码。 C语言的反编译工具主要通过分析目标代码和逆向工程技术来实现。这些工具可以读取目标文件中的二进制指令,并尝试还原出原始的C语言源代码。 然而,C语言的反编译并不是完全准确和可逆的过程。由于编译器的优化等因素,一些信息在编译后就会丢失,使得反编译后的代码可能存在一些差异和不完全性。此外,由于反编译工具的算法和原始代码的复杂性,反编译结果可能会比较难以理解和修改。 尽管如此,C语言的反编译仍然被广泛用于软件逆向工程、恶意代码分析和漏洞研究等领域。通过反编译,我们可以深入了解程序的执行流程、数据结构和算法逻辑,为后续分析和修改提供了便利。 总结来说,C语言反编译是将编译后的目标代码转换为可读的源代码的过程。虽然反编译结果可能不完全准确,但它在软件逆向工程和漏洞研究等领域具有重要的应用价值。 ### 回答2: C语言中的反编译是指将已编译的对象文件(.obj)转化为可读的源代码的过程。反编译是一种逆向工程的技术,它可以帮助开发者了解和分析已编译的程序,以及进行程序的修改和优化。 要进行C语言的反编译,需要使用专业的反汇编工具。常用的反汇编工具有IDA Pro、OllyDbg等。这些工具可以将机器语言指令逆向还原为汇编语言代码,从而辅助开发者理解源代码的结构和逻辑。 反编译过程中,开发者需要仔细研究汇编代码,通过对指令的分析、跳转和数据交互等操作的观察,来推测原始C语言源代码的结构和功能。这个过程需要一定的经验和技巧,同时也需要对C语言的编译原理和汇编语言有深入的了解。 但需要注意的是,反编译并不意味着完全还原原始的C代码。由于编译过程中存在优化和信息丢失的情况,反编译后的代码可能会有一定的差异,并且可能存在一些不确定性。因此,反编译得到的代码一般需要经过进一步的修复和调试,以便使其在编译时能够正常通过。 总的来说,C语言的反编译是一项复杂而有挑战的工作,它需要一定的专业工具和技术支持,并且对反汇编和C编程有较深的了解。通过反编译,可以帮助开发者了解、分析和修改已编译的程序,提升开发效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值