C++ 在DirectX/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中执行类似操作吗


我想使用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是的。谢谢你的努力,但是的,这不太对