这个是我的话,悬赏一千万。
问题确实有点难度,不过真正能回答的,也不是来获取豆豆的。
@tangshuji:
这已经不是有点难度的问题。
类似于有人在知乎上问,10万元可以开发一个类似微信的APP吗?
回答是可以,也不可以。难度不在功能实现,难度在并发、内存控制、响应、安全。
银行的网站10万就可以开发出来,后面那100,000,000是功能之外的东西。
12306花了几个亿,还是渣渣的响应。
我还经常收到有人想做一个类似淘宝的商城需求,当然,他还会谨慎地问,你看我这儿有8千,够吗?
详细我就不吐槽了,你有能力开发出媲美Autocad的软件的话,随随便便可以在中国找家公司,开价1千万年薪。
所以....
@爱编程的大叔:我也尝试过一些方法,但是收效甚微。我就是期待有做过类似的人,能指点一二,或者能够给点相关的意见,得到得点启发或者灵感。
@tangshuji: 好吧,你的水平确实比较高。
梦想还是要有的,万一实现了呢?
看一万本有关C++和Windows编程的书,学习有关图像处理方面的算法,熟悉各种指针操作,
到AutoDesk公司工作十年,到微软Windows部门工作十年,到Adobe公司再工作十年。
再找一个疯投,给个10亿8亿美刀,多娶几个老婆,多生几个孩子,你做不完的事情,可以让孩子接下去做,这样也表示是你做的了。反正有你的基因在。
如果你只是要AUTOCAD的功能,你可以参考一下圆方的做法。
当然你如果非要学习倪光南他老人家,骗几亿国家科技基金,开发一个国产CAD,那也行。
@爱编程的大叔:我的水平就一般,不然,也不会来了这里提问了,不过这个问题实在纠结得很久了。国产的不是有中望CAD和浩辰CAD了嘛。
@爱编程的大叔: 还有一点,不是C++和Windows编程的问题,现在只考虑二维的CAD,至于图像图形算法,在3D应用中比较实用。
@爱编程的大叔: AutoCAD当然是不可超越的,也不需要它那么强大,只需要看图流畅就行了。即使降低图形质量也行。
@tangshuji: 想做类似淘宝商城的人,也这么跟我说的,要不再加点,你看2万够不?
本来已经不想再回答你了。
人贵有自知之明,你这事这样问根本没有可能从技术上回答你。
你希望高手(比如做DOOM引擎的)直接发给你一个引擎还是咋的?
要不然也只能告诉你,认真检查代码,优化再优化,优化再优化,
优化再优化。不能优化的时候,说明你知识遇到瓶颈了,进修去。
@爱编程的大叔: 我在segmentfault上也问了这个问题,有一个人就列举了几个方法。
1.设定重绘边界,剔除边界外的元素
2.剔除完全被其他元素遮挡的元素
3.缓存已绘制的元素
4.使用 GPU 加速绘制
5.缓存元素的位图, 将多个元素编组缓存位图效果更好。
在CSDN上也问了,有一个人回复如下:
利用CPU空闲时间对视图做缓冲。因为用户经常要做的是上下左右平移和缩小。所以可以将这些地方先渲染好,然后再直接载入。
还有一些人提到LOD,也就是细节分层显示技术。(我已经使用了退化来处理基本看不见的元素)
你看,这些回复在一般的绘图程序中是可以提高性能的。
但是,我差不多都已经采用了这些技术。效果仍然不明显。
@爱编程的大叔: 还有有的人说使用多线程提高并发速度,这个也使用了,效果也有。虽然他们有的回答,可能不太适合,但是即使是浏览器的引擎,也是从这些方法来优化的。不然呢?有的CAD软件,元素很多的时候,放缩的时候是使用图片来放大,然后再计算数据,百度地图不都是这样的吗?
@tangshuji: 你好,我最近也遇到了类似的问题,能否把你用的上述那些方法告知一下具体,能否发一下代码,邮箱xszhubin@163.com
1.设定重绘边界,剔除边界外的元素
2.剔除完全被其他元素遮挡的元素
3.缓存已绘制的元素
4.使用 GPU 加速绘制
5.缓存元素的位图, 将多个元素编组缓存位图效果更好。
6.使用多线程提高并发速度,
你用什么语言开发的?没有用指针的话,效率就不行
C++开发的,使用了智能指针,虽然比原生指针效率是低了点,但是应该不足以影响这么大。