草庐IT

矢量绘图

全部标签

31.2k star, 免费开源的白板绘图工具 tldraw

(adsbygoogle=window.adsbygoogle||[]).push({}); 项目名:tldraw--无限画布白板Github开源地址:https://github.com/tldraw/tldraw在线测试地址:https://www.tldraw.com/文档地址:https://tldraw.dev/tldraw是一款开源免费的无限画布白板,可以在线的实时协作,用户能够创建简单的图形和图示。tldraw的设计目标是提供一个易于使用的绘图工具,支持团队协作,同时具有跨平台和实时协作的功能。安装方法:gitclo

c++ - 由于 '1300' 原因,循环未矢量化

我正在尝试对进行大量迭代(超过300000000次)的循环进行矢量化以获得一些计算时间:uint16_t*samples=(uint16_t*)pixmap->samples;Imageimage(pixmap->w,pixmap->h);uint8_t*dest=(uint8_t*)image[0];for(intx=0;x但是qvec-report说由于原因1300它不能被向量化。根据MSDN,原因1300是:Loopbodycontainsno—orverylittle—computation.确实,我的循环体的计算量很少,但由于迭代次数多,还是需要一些时间。为什么在那种情况下没

c++ - 现代 C++ 编译器是否自动矢量化代码以进行 24 位图像处理?

gcc、visualstudioc++、intelc++编译器、clang等编译器是否像下面这样对代码进行矢量化?std::vectorimg(height*width*3);unsignedcharchannelMultiplier[3];//...initializeimgandchannelMultiplier...for(inty=0;y32位图像处理如何? 最佳答案 我认为您的三重循环不会自动向量化。IMO的问题是:通过对象类型std::vector访问内存。据我所知,我认为任何编译器都不会自动矢量化std::vector

C ++矢量迭代器nth_element编译错误

下面的代码不会编译。在第二行的第二行有一个错误(nth_element...)。它似乎与比较器有关。编译器主张“术语不评估为2个参数的函数”。如何解决编译错误?structResult{Result(unsignedintid,doubleresult);boolcmp(constResult&a,constResult&b)const;unsignedintid;doubleresult;};Result::Result(unsignedintid,doubleresult){this->id=id;this->result=result;}boolResult::cmp(constResu

c++ - 使用 Cairo 绘图时有什么方法可以加快/减少 CPU 使用率?

我写了一个应用程序,它使用Cairo在屏幕上绘制东西(准确地说是在Gtk::DrawingArea上)。它需要经常重绘一切。事实证明,尽管绘制的图形非常简单,但X服务器在重绘时会占用大量CPU,并且应用程序运行速度非常慢。有什么办法可以加快速度吗?或者也许我不应该使用DrawingArea和其他一些小部件?我画的是一组矩形,用户可以通过鼠标拖动来移动它们。整个绘图是使用on_expose_event完成的,但是随着鼠标指针四处移动(按下按钮),我调用queue_draw()来刷新绘图。 最佳答案 只需检查几件事:你的画是在expos

c++ - 帮助 GCC 进行自动矢量化

我有一个需要优化的着色器(有很多vector操作),我正在试验SSE指令以便更好地理解这个问题。我有一些非常简单的示例代码。通过USE_SSE定义,它使用显式SSE内在函数;没有它,我希望GCC会为我完成这项工作。自动矢量化感觉有点挑剔,但我希望它能帮我省点事。编译器和平台是:gcc4.7.1(tdm64),目标x86_64-w64-mingw32和IvyBridge上的Windows7。测试代码如下:/*IncludealltheSIMDintrinsics.*/#ifdefUSE_SSE#include#endif#include#ifdefined(__GNUG__)||defi

c++ - 使用 g++ 对带位操作的循环进行自动矢量化

是否可以矢量化此循环(使用g++)?charx;intk;for(ints=0;s>=2;}A和B是指向非重叠float组的指针;B的索引为0到3。我需要最大限度地提高可移植性,因为这是一个R包,所以最好的方式是重写g++能够单独对其进行矢量化,因为我不知道如何在这种情况下使SSE代码可移植(RcppEigen包使库Eigen可用,所以这是可能的)。非常感谢您的想法。P.S.嵌套的代码看起来像intk=0;for(size_tj=0;j>=2;}} 最佳答案 有一个使用AVX2的解决方案:__m256_B=_mm256_setr_p

c++ - 为什么内联函数中的循环不能正确地自动矢量化?

我正在尝试矢量化一些简单的计算以加快SIMD架构的速度。但是,我也想将它们作为内联函数,因为函数调用和非矢量化代码也需要计算时间。但是,我不能总是同时实现它们。事实上,我的大多数内联函数都无法自动矢量化。这是一个简单的测试代码:inlinevoidadd1(double*v,intLength){for(inti=0;i在MacOSX10.12.3上,编译它:clang++-O3-Rpass=loop-vectorize-Rpass-analysis=loop-vectorize-std=c++11-ffast-mathtest.cpptest.cpp:2:5:remark:vecto

c++ - 将绘图窗口 "deeper"的控制传递给程序?

我正在使用SFML2.3来控制程序中的图形。我需要一个类才能访问窗口,即使该类不是最初创建窗口的类(没有所有权)也可以绘制它。例如。Battle类需要能够绘制战斗场景并在那里操作角色,但是World类需要在Battle之前和之后的窗口来显示玩家在主游戏中的Action。应该如何处理窗口对象?我最初的想法是拥有一个将窗口作为静态成员的GameMaster类。但是我认为最好检查一下通常的共识是什么,而不是错误地使用这种方法。我意识到我总是可以将对窗口的引用传递给需要它的每个类,但这会使所有需要操作窗口的类的构造函数变得非常臃肿。 最佳答案

c++ - 离屏绘图GDI+

我有一个问题-我需要绘制两个png文件,一个放在另一个上。当我以通常的方式进行操作时,会出现“闪烁”效果(第一张图像在短时间内overdraw第二张图像)。我使用GDI+库,我的WM_PAINT处理看起来像这样:caseWM_PAINT:{PAINTSTRUCTps;HDChdc=BeginPaint(hwnd,&ps);displayImage(firstImage,hwnd);displayImage(secondImage,hwnd);EndPaint(hwnd,&ps);break;}显示图像函数:voiddisplayImage(HBITMAPmBmp,HWNDmHwnd){