C++ 在DirectX/Direct2D/Direct3D中绘制多边形(三角形)
可以在Direct2D或Direct3D中执行类似操作吗C++ 在DirectX/Direct2D/Direct3D中绘制多边形(三角形),c++,graphics,directx,direct3d,direct2d,C++,Graphics,Directx,Direct3d,Direct2d,可以在Direct2D或Direct3D中执行类似操作吗 我想使用Direct2D/Direct3D做一些类似的事情,但是要使用与图中所示类似的平面2D形状。谢谢这可能不是确切的答案……但可以作为指导 D2D1Factory* pD2DFactory = NULL; ID2D1HwndRenderTarget* pD2DRenderTarget = NULL; ID2D1DCRenderTarget* pD2DDCRenderTarget=NULL; ID2
我想使用Direct2D/Direct3D做一些类似的事情,但是要使用与图中所示类似的平面2D形状。谢谢这可能不是确切的答案……但可以作为指导
D2D1Factory* pD2DFactory = NULL;
ID2D1HwndRenderTarget* pD2DRenderTarget = NULL;
ID2D1DCRenderTarget* pD2DDCRenderTarget=NULL;
ID2D1Bitmap* pD2DBitmap = NULL;
D2D1CreateFactory(D2D1_FACTORY_TYPE_MULTI_THREADED,&pD2DFactory);
RECT rc = {dx,dy,dx+dw,dy+dh};
D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(
D2D1_RENDER_TARGET_TYPE_DEFAULT,
D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM,D2D1_ALPHA_MODE_IGNORE),
0,0, D2D1_RENDER_TARGET_USAGE_NONE, D2D1_FEATURE_LEVEL_DEFAULT);
pD2DFactory->CreateDCRenderTarget(&props,&pD2DDCRenderTarget);
pD2DDCRenderTarget->BindDC(hDC,&rc);
pD2DDCRenderTarget->CreateBitmap (D2D1::SizeU(sw,sh),(void*)p_bmp,pitch,
D2D1::BitmapProperties(D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM,D2D1_ALPHA_MODE_IGNORE)),
&pD2DBitmap);
pD2DDCRenderTarget->BeginDraw();
pD2DDCRenderTarget->DrawBitmap(pD2DBitmap,
D2D1::RectF((FLOAT)dx,(FLOAT)dy,(FLOAT)dw,(FLOAT)dh),1.0,D2D1_BITMAP_INTERPOLATION_MODE_LINEAR,
D2D1::RectF((FLOAT)sx,(FLOAT)sy,(FLOAT)sw,(FLOAT)sh));
pD2DDCRenderTarget->EndDraw();
SafeRelease(&pD2DBitmap);
SafeRelease(&pD2DDCRenderTarget);
SafeRelease(&pD2DFactory);
你为什么把自己限制在Direct2D上?你想画一个简单的三角形,还是想用一个“凸起”的三角形画整个网格区域?@Pod我想画一个简单的三角形,作为ARIA机器人模拟器声纳扫描的一部分。只要它使用DirectX,我不介意它是D2D还是D3D的混合。到目前为止,我只使用了D2D,但如果D3D可以混入其中,那就好了。@SilentFart我认为它不是三角形而是圆形扇区(圆形外缘),因为这是声纳扫描,对吗?@Chexxor是的。谢谢你的努力,但是的,这不太对