jjzjj

Graphics

全部标签

C# 或 C++ - Windows 图形概述的好资源 - 2D,直接绘制像素

我有一个我一直在研究的奇怪的小lifesim程序,它涉及二维数组中的数据。这从来都不是一件大事,我最初通过将它逐个像素地写入外部位图来查看它的一些快照,然后我打开并查看。这不会给我任何形式的屏幕实时更新。这是一种糟糕的方法,并且在尝试直接在窗口中实现绘制时,我想第一次就正确有效地完成此操作。我做了一些搜索并找到了bitblt,这将让我一次绘制一个完整的矩形,但我所有的图形经验都仅限于WPF之类的东西,很多术语我都忘记了。我不知道我的数据应该是什么格式才能将它作为位图传递给这个函数。在阅读msdn时,我发现了对DC等内容的引用,还有更多我尚未了解的内容。我不需要了解很多有关Windows

c++ - 如何在透明背景上绘制PNG?

我有一个WS_EX_LAYERED样式的窗口,它的alpha颜色键为魔法粉色(0xFF,0,0xFF)。我正在尝试使用GDI+在该窗口上绘制PNG图像,它在图标边缘(应用alpha混合的位置)周围显示粉红色阴影。这是一个例子:http://img834.imageshack.us/img834/8241/stackoverflow.png如何使用真实背景(在我的窗口后面)alpha混合而不是颜色键来绘制图像?感谢帮助,欧麦 最佳答案 一些要检查的点:你见过thedocsonMSDN吗??您将哪些选项输入了您的BLENDFUNCTIO

c# - 图形 DrawImage 导致带有大红色 X 的错误

我有一组位图图像,我正在循环这些图像并将它们全部写入一个新位图。基本上,我收集了一组松散的位图,并将它们一个接一个地写入一个位图,以便它们作为一个图像可见。当我从集合中的位图之一调用dc.DrawImage到新位图时,我的winform在窗体中显示一个红色的大X。当我将PictureBox.Image设置为新绘制的位图时,我得到一个红色的大X。出于某种原因,我无法在任何地方找到错误。我无法通过调试找到错误。现在,如果我只是将PictureBox.Image设置为图像集合中的其中一张图像,而无需循环并绘制到新位图上,则一切正常。为了让一切变得简单,我只使用集合中的一个位图并将该位图绘制到

Space Invaders 的 C++ 图形更新

我正在尝试运行我的游戏SpaceInvaders,但我遇到了图形问题。要玩这个游戏,你用左键点击按钮开枪,这会触发一个新线程,它获取子弹的当前X位置,绘制子弹,然后休眠并用背景颜色覆盖子弹。这将继续循环以使子弹移动。我在“掩盖”子弹时遇到问题。voidbullet(intstartpos1,intstartpos2,HWNDhwnd){intstarty1=500;intstarty2=460;while(starty2>0){starty1=starty1-5;starty2=starty2-5;PAINTSTRUCTps;SetDCPenColor(hdc,RGB(255,255,

windows - Vulkan 在 Linux 上找不到物理设备

我一直想使用新的图形APIVulkan,并且已经在Windows7上顺利启动并运行它。但是我无法让Vulkan在Linux上工作。当我尝试运行任何LunarG示例,甚至是我自己的代码时,vkEnumeratePhysicalDevices总是说没有物理设备。这是我的设置:OS:Ubuntu16.04(LTS)[x64]GPU:NvidiaGeforceGT7302GBGDDR5Driver:NVIDIABinarydriver-version364.19fromnvidia-364(opensource)VulkanSDK:LunarGv1.0.17.0[latestversion]我

.net - 是否有具有相同公共(public)接口(interface)的 System.Drawing.Graphics 的直接替代品?

我们有一个老化的.NETWindows桌面海洋导航应用程序,它对S-57海洋矢量图(map)、船舶、预测器和各种导航对象(例如路线)进行一些中等复杂的渲染。渲染是很久以前使用System.Drawing.Graphics实现的。在某些情况下,绘图会变得非常慢。我们使用了VS2013分析器和dotTrace分析器来优化我们代码中明显的热点。剩下的时间花在Graphics.DrawLines、Graphics.FillPolygon等方法上从长远来看,渲染需要重新实现或移植到硬件加速的图形API。是否存在与System.Drawing.Graphics具有相同接口(interface)的任

windows - 是否有一种简单的方法可以强制Windows使用固定的DPI值而不是当前DPI设置来计算文本范围?

我想知道是否有一种简单的方法来计算字符串的文本范围(类似于GetTextExtentPoint32),但是允许我指定要在计算中使用的DPI。换句话说,是否有一个功能与GetTextExtentPoint32完全一样,但是允许我将DPI作为参数传递,或者是一种“欺骗”GetTextExtentPoint32以使用我可以指定的DPI的方法?在您问“为什么要这样做?”之前,我将尽力解释,但请允许我理解,此请求背后的原因有些涉及。最终,这是针对自定义自动换行算法的,该算法将长字符串分成较小的文本块,这些文本块需要整齐地适合具有复杂文本布局要求的CrystalReport(它模仿了警察用于提起刑

c# - 在C#中快速在屏幕上绘制各种形状/文本的轻量级方法?

希望这是一个非常简单的问题!哪种方法(可能还有库)被认为是在2DCanvas上绘制文本和形状以及修改单个像素的最佳方法,这样我至少可以达到30FPS?我已经知道各种方法,如SDL、DirectX、WPF、WindowsFormsGraphics等,但我想知道我应该花大部分精力学习哪一个才能实现我的目标?社区最尊重哪一个?非常感谢,尼克·希尔 最佳答案 将其视为一个快速图形框架:UltraFast2D&3DGraphicsFramework甚至用于XBox和PC的游戏设计!对于其他微软框架(如.netframework)的开发人员来说

c - 如何在静态控件中画线?

我想在静态控件中画一条线:caseWM_CREATE:{hgraph=CreateWindow(WC_STATIC,NULL,WS_CHILD|WS_VISIBLE|SS_CENTER,20,20,660,80,hWnd,NULL,NULL,NULL);SendMessage(hgraph,WM_SETTEXT,NULL,(LPARAM)"MyStatic");break;}caseWM_PAINT:{hdc=GetDC(hgraph);hp=CreatePen(0,5,RGB(0,100,0));SelectObject(hdc,hp);MoveToEx(hdc,0,0,0);Lin

c++ - 使用 Windows API 和 C++ 进行 2D(或 3D)图形编程?

我即将开始我的大学类(class)单元项目。我希望用C++制作有点像小行星的复古2D游戏。我可以使用SFML之类的东西来做到这一点,这看起来肯定是合乎逻辑的事情。但是我不能使用SFML,因为这些库在Windows上默认不可用。要求是我的C++代码必须复制并粘贴到任何WindowsPC(已安装VisualStudio),然后从VisualStudio编译/运行。我以前从未使用过WindowsAPI,但我觉得我可以使用它打开一个窗口并在窗口中绘制一些二维图形。我对么?基本上这就是我需要做的所有事情:打开一个窗口,然后在上面画一些线。这不是“你能帮我做作业吗”类型的问题。如果这是我需要的工具