残缺的图形...... [英] Crippled graphics...

查看:66
本文介绍了残缺的图形......的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

杰夫加西亚值得玩!


无论如何,为什么微软取消了点?和Pset从早期版本的VB中已经有限的图形函数选择VB.NET中的函数?在图片框控件或支持图形的任何其他控件中进行合理复杂的图形工作的任何机会都已被削弱。 点指的是点。函数返回给定坐标处的像素颜色。 Pset是指Pset。函数允许您在给定坐标处设置像素颜色。我问你,除了这些功能之外,任何图形工具包对哪两个功能更加不可或缺?然而,微软觉得有必要消除它们。这是疏忽吗?它是恶意吗


我试过让VB.NET的升级向导升级我一直在开发的VB6项目。真是一团糟!这就像雨果飓风过去了。我有大约一千个要处理的事件,更不用说图形支持已被彻底改变并缩小到大小,这意味着许多关键程序无法升级。此外,我为VB6中的picturebox控件所做的图形工作根本无法在VB.NET中以我所知道的方式复制。我唯一能做的就是从头开始使用Visual c ++或者用OpenGL或ActiveX做一些事情。这是一个耻辱。我设计的图形非常漂亮,编码相当简单。它们由一条箭头组成,它沿着一条线移动以响应MouseMove事件。当箭头来回移动时,一个恒星区域代表地球上选定位置的天空中的所有星座,响应箭头来回反复地来回移动。这只是一个更雄心勃勃的事情的初步,但关键是我可以使用简单,易于访问的VB6功能完成所有必要的图形工作。只有点可以做很多事情。 "&的Pset QUOT;和清除函数


我对VB6很满意,但我对微软在其.NET版本中对VB的草率处理感到失望。 Point和Pset不是这个最新修补的唯一故障,还有OLE支持,调试,表单大小等等。但这是另一个主题。我想学习.NET,但感谢上帝,我仍然拥有我的Visual Studio 6.0。那个人进入保险库直到更好的事情发生。

Jeff Garcia deserves to play!!!

Anyway, why has Microsoft eliminated the "Point" and "Pset" functions in VB.NET from what was already a limited selection of graphical functions in earlier versions of VB? Any chance of doing reasonably sophisticated graphical work in a picturebox control or any other control that supports graphics has been crippled. The "Point" function returns the pixel color at the given coordinates. The "Pset" function allows you to set the pixel color at the given coordinates. I ask you, what two functions could be more indispensable to any graphical tool kit than functions such as these? Yet, Microsoft feels a need to eliminate them. Is this an oversight? Is it malice

I tried allowing the upgrade wizard for VB.NET to upgrade a VB6 project I''ve been developing. What a mess! It was like hurricane Hugo had passed through. I had about a thousand exeptions to deal with, not to mention that graphics support had been turned inside out and cut down to size which meant that many key procedures could not be upgraded. Moreover, the graphical work I did for the picturebox control in VB6 simply cannot be duplicated in VB.NET by any means I know of. The only thing I can do would be to start from scratch with Visual c++ or do something with OpenGL or ActiveX. It''s a shame. The graphics I designed were really quite slick, and fairly simple to code. They consisted of an arrow that moved along a line in response to a MouseMove event. As the arrow moved back and forth so did a field of stars, representing all the constellations in the sky at a chosen location on earth, arc back and forth in time in response to the arrow. This was just a preliminary to something more ambitious, but the point is I could have done all the necessary graphical work with the simple, easily accessable VB6 functions. There''s a lot you can do with just the "Point" "Pset" and "Clear" functions

I was fairly happy with VB6, but I''m disappointed in Microsoft''s sloppy treatment of VB in its .NET incarnation. Point and Pset are not the only hitches in this latest tinkering, there is also OLE support, debugging, form sizing, etc. But that''s for another topic. I want to learn .NET, but thank God I still have my Visual Studio 6.0. That one goes into the vault until something better comes along.

推荐答案

你好Egbert,


我是不是那么老了,但是当福特

从T ford换掉他的2档变速箱时,我想到了同样的讨论。


但是那里很多人在那之后很长一段时间都在那里使用了T Ford。

并且非常满意它。


只是一个想法


Cor
Hi Egbert,

I am not that old, but I thought there where the same discussions when Ford
was changing his 2 shift gearbox from the T ford for something else.

But there where a lot who did use there T Ford for a long time after that
and where very happy with it.

Just a thought

Cor


2003年11月13日星期四23:11:10 -0800,eggbert写道:
On Thu, 13 Nov 2003 23:11:10 -0800, eggbert wrote:
无论如何,为什么微软取消了Point。和Pset VB.NET中的函数
Anyway, why has Microsoft eliminated the "Point" and "Pset" functions in VB.NET




我不完全理解他们的推理,但它与

分辨率独立性有关。 br />

无论如何,位图类支持GetPixel和SetPixel,还有

LockBits方法,可以让你获得原始像素数据。也许那可以

帮助你。


此外,请查看此常见问题解答:

http://www.bobpowell.net/gdiplus_faq.htm


-

克里斯


要给我发电子邮件,请从我的电子邮件中删除下划线和午餐肉

地址。



I don''t fully understand their reasoning, but it has something to do with
resolution independence.

In any event, the bitmap class supports GetPixel and SetPixel, and also the
LockBits method which lets you get to the raw pixel data. Perhaps that can
help you.

Also, check out this FAQ:

http://www.bobpowell.net/gdiplus_faq.htm

--
Chris

To send me an E-mail, remove the underscores and lunchmeat from my E-Mail
address.


Chris,

我也不知道具体细节,SetPoint会很好,我相信不会
$ b难以实现的$ b,特别是看到我们可以使用DrawLine(或者它是
DrawRectangle)来伪造它。


GetPoint将具有挑战性!


请记住,Graphics对象有Page Transforms,World Transforms和

别名!所以我希望逻辑SetPoint& GetPoint over physical

SetPixel& GetPixel。


因此我可以使用颜色1调用SetPoint,但是在SetPoint之后立即调用确切的

相同坐标的GetPoint可能会返回过多的

颜色,因为逻辑点实际上涵盖了多个物理点,并且

由于

别名,每个物理点的颜色可能略有不同。或完全不同的颜色如果我使用浮点

版本的绘制方法。当然,除非SetPoint& GetPoint是

限于物理坐标,这意味着它们太有限了,为什么

烦恼,我们可以使用Bitmap.GetPixel& Bitmap.SetPixel。


我相信还有其他技术原因可以省略它。
Chris,
I don''t know the specifics either, SetPoint would be nice and I believe not
that hard to implement, especially seeing we can use DrawLine (or is it
DrawRectangle) to "fake it".

GetPoint would be challenging!

Remember that the Graphics object has Page Transforms, World Transforms, and
aliasing! So I would expect logical SetPoint & GetPoint over physical
SetPixel & GetPixel.

So I may call SetPoint with color 1, however calling GetPoint on the exact
same coordinates, immediately after SetPoint, may return a plethora of
colors, as the logical point actually covers multiple physical points, and
each of those physical points may be a slightly different color due to
aliasing. Or completely different colors If I was using the floating point
versions of the draw methods. Unless of course SetPoint & GetPoint are
limited to physical coordinates which means they are too limited so why
bother, we can use Bitmap.GetPixel & Bitmap.SetPixel.

I am sure there are other technical reasons as to why it was omitted.
我还不完全明白他们的推理,但它与分辨率独立性有关。
我怀疑设备独立性,你如何在打印机上使用GetPoint?

当然,打印机的Graphics对象可以保持打印的

点的位图。让我们看看我的1200 dpi真彩色打印机上的合法纸张位图的内存量是多少?b $ b。 ;-)


我还要问你什么时候才真正需要返回点的颜色。你刚刚显示了
,我希望我的程序中的某些

对象能保留这些信息。


我''我在 http://longhorn.msdn.microsoft.com/ 上看不到任何内容那将是
表明在Whidbey或Longhorn中已经发生了变化。


只是一个想法

Jay

" Chris Dunaway" < dunawayc@_lunchmeat_sbcglobal.net>在留言中写道

新闻:14 ****************************** @ 40tude.net .. 。在2003年11月13日星期四23:11:10 -0800,eggbert写道:
I don''t fully understand their reasoning, but it has something to do with
resolution independence. I suspect device independence also, how do you GetPoint on a printer? Of
course the Graphics object for the Printer could maintain a bitmap of the
points being printed. Lets see how much memory for the bitmap would this be
for legal paper on my 1200 dpi true color printer. ;-)

Also I question when you really need to return the color of a "point" you
just displayed, I would expect that information would be maintained in some
object within my program.

I''m not seeing anything at http://longhorn.msdn.microsoft.com/ that would
suggest this has changed in Whidbey or Longhorn.

Just a thought
Jay

"Chris Dunaway" <dunawayc@_lunchmeat_sbcglobal.net> wrote in message
news:14******************************@40tude.net.. . On Thu, 13 Nov 2003 23:11:10 -0800, eggbert wrote:
无论如何,为什么微软取消了Point。和Pset函数在
Anyway, why has Microsoft eliminated the "Point" and "Pset" functions in


VB.NET
我不完全理解他们的推理,但它与
解决方案的独立性有关。

任何事件,位图类都支持GetPixel和SetPixel,还有
LockBits方法可以让你获得原始像素数据。或许
可以帮到你。

另外,请查看此常见问题解答:

http://www.bobpowell.net/gdiplus_faq.htm

-
Chris
< br。>要给我发电子邮件,请从我的电子邮件地址中删除下划线和午餐。

VB.NET
I don''t fully understand their reasoning, but it has something to do with
resolution independence.

In any event, the bitmap class supports GetPixel and SetPixel, and also the LockBits method which lets you get to the raw pixel data. Perhaps that can help you.

Also, check out this FAQ:

http://www.bobpowell.net/gdiplus_faq.htm

--
Chris

To send me an E-mail, remove the underscores and lunchmeat from my E-Mail
address.



这篇关于残缺的图形......的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆