永发信息网

请问用C或C++(MFC) 储存文件时如何把命令储存下来而不是数据

答案:4  悬赏:0  手机版
解决时间 2021-04-09 03:47
我是用做一个3D画图软件 想储存每次画完的文件的话难道要把每个点的三维坐标都储存下来吗?例如我画了一个大圆那怎么一个一个储存它的点的坐标好麻烦不知道怎么实现... 能不能直接把Drawrect之类的一系列命令以文件方式储存下来 下次打开文件直接执行一遍命令就行了 谢谢 如果办法不错且解释详细可以再追加30分~~
我需要用opengl...不能用CMetaFileDC画图...
最佳答案
可以自定义实现文件的数据结构,比如:

ar<<命令段头< ar<<命令号<<参数1<<参数2<<参数3< ar<<附加参数块长度<<附加参数<<附加参数块长度< ar<<命令段尾<
这样效率比较高,也可以完全控制文件内容,推荐!
全部回答
你可以设计不同的类来实现这些图形的具体画法,每次画的时候,只需调用相应类的方法即可。 再看看别人怎么说的。
建数据结构 公共底层类,各类图形继承它 class Point3D { double x,y,z; }; class CirCle { public: Point3D o; double r; } class RECT { public: double width,height; //Point3D 根据构的情况定义 Point3D leftUP,leftDown............ public: RECT(Point3D leftUP,Point3D leftDown,Point3D anyPoint) { //计算其它各点 } }; 绘图时读取这些结构和类中数据重绘。 做项目的话肯定要用我的方法。 要是做个玩具的话那就用MetaFile吧 猪头。。。。。。。
用CMetaFileDC类吧: CMetaFileDC:一个Windows源文件包含了一系列的图形设备接口的命令,你可以用来重放或创建一个想要的图形或文本。 CDC::PlayMetaFile();播放源文件(在当前窗口输出) CMetaFileDC::Create();再次准备源文件设备上下文 CDC::PlayMetaFile();在新的源文件DC中绘制 BOOL DeleteMetaFile();删除源文件(参数为句柄) HMETAFILE CopyMetaFile();拷贝windows格式源文件到指定的文件。 用这种方法保存的不是数据,而是命令。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
佛坪县司法局袁家庄司法所这个地址在什么地方
I don’t like swimming, I won’t join the
感谢大哥的句子快手,感谢老大的话
金禾商城最近有什么新活动吗?
单选题下列科技成就属于美国人发明的是①蒸汽
请问这是巴宝莉包包的什么型号 谢谢
单选题Oh, it's you! I didn
青岛输送带这个地址在什么地方,我要处理点事
我有一枚康熙通宝 背满文 宝泉 值多少钱?
请问这是张大千真迹吗?现在的价格大概在什么
lee牌牛仔裤零售价一般多少
做生意,亏了,借利息钱没有还,现在债主告到
闲暇时间如何理财
天津麻将什么牌是本,甩本
北京太和轩做字画装裱行不?做的细致吗?
推荐资讯
--Hi, Tracy, you look tired.I am tired. I
内医大鄂尔多斯学院附属医院在什么地方啊,我
悠去掉心字底念什么,三横一竖两边分双木底下
一点儿五三+23点四除以七点二的简便运算
农村建房子两层六间150平左右。,需要多少钱
我的接收机是DVB_S,里面有中星6B,亚洲3S,
我现在在玉泉院前面 上华山应该怎样安排? 求
一男一女去上坟正确答案
hololens 模拟器怎么表示手势
茄子的英文单词是什么,红烧茄子做法的英文版
小说加VIP对作者有什么好处
晋升原因和理由怎么写,岗位晋升的申请理由怎
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?