L_LVKRN_APIL_INTL_VecRealize(pBitmap, pVector, bEraseBkgnd)
将指定的向量绘制到指定的LEAD位图句柄中。
指向位图句柄的指针,向量将被绘制到位图句柄中。
指向一个向量句柄的指针,该句柄引用要绘制到pBitmap中的向量。
标志,指示在实现位图的矢量时是否擦除背景矩形。可能取值为:
| 价值 | 意义 |
|---|---|
| 真正的 | 当矢量图像实现为位图时,背景矩形将被擦除。 |
| 假 | 背景矩形不会被擦除。 |
| 价值 | 意义 |
|---|---|
| 成功 | 活动很成功。 |
| < 1 | 发生错误。指返回代码. |
这个函数将指定的向量绘制到指定的位图句柄中。
位图句柄应该在调用此函数之前分配。
如果hDC为NULL,此函数将假定pVector已经附加到窗口,并将其绘制到窗口DC。
用于擦除要渲染的矢量图像的矩形的背景色可以设置为L_VecSetBackgroundColor.
这个函数将使用当前相机和矢量手柄的当前视图端口在DC表面上进行必要的投影。
必需的dll和库
这个例子将为给定的矢量文件创建一个BITMAPHANDLE。
L_LTVKRNTEX_API pBITMAPHANDLE VecRealizeExampleL_TCHAR * pszFile,L_UINT uWidth,L_UINT uHeight,L_INT * nRet){/* uWidth和uHeight是期望的位图大小,最终的位图大小将小于或等于uWidth和uHeight。* /VECTORHANDLE TmpVector;最小值,最大值;pBITMAPHANDLE pBitmap;L_DOUBLE Width, Height, Factor;矩形矩形;首先加载向量*/*nRet = L_VecLoadFile(pszFile, &TmpVector, NULL, NULL);如果(*nRet != SUCCESS)返回零;/*获取矢量图像逻辑平行四边形*/*nRet = l_vecgetobject平行四边形(&TmpVector, NULL, &Min, &Max, 0L);如果(*nRet != SUCCESS)返回零;/*计算视口保留矢量图像纵横比*/宽度=最大。x -最小x;高度=最大。y - Min.y;如果(uWidth < uHeight){因子= uWidth / Width;/ *检查如果高度合适在大小* /如果((因子*高度)> uHeight){/*不可以做,根据高度*/计算因子= uHeight / Height;}}其他的{因子= uHeight / Height;/ *检查如果宽度合适在大小* /如果((因子*宽度)> uWidth){/*不可以做,根据width */计算因子= uWidth / Width;}}/*设置视口矩形*/left = 0;top = 0;right = (L_INT)(因子*宽度);rect.bottom = (L_INT)(因子*高度);/*创建LEAD位图*/pBitmap = (pBITMAPHANDLE) GlobalAllocPtr(GHND,运算符(bitmaphandle));*nRet = L_InitBitmap(pBitmap,运算符(BITMAPHANDLE),矩形.right,矩形.bottom, 24);如果(*nRet != SUCCESS)返回零;*nRet = L_AllocateBitmap(pBitmap, TYPE_CONV);如果(*nRet != SUCCESS)返回零;/*设置视口*/*nRet = L_VecSetViewport(&TmpVector, &rect);如果(*nRet != SUCCESS)返回零;/*设置摄像头为俯视图位置。* /*nRet = L_VecSetCamera(&TmpVector, NULL);如果(*nRet != SUCCESS)返回零;/*渲染到位图*/*nRet = L_VecRealize(pBitmap, &TmpVector, TRUE);如果(*nRet != SUCCESS)返回零;/*释放不再需要的向量*/*nRet = L_VecFree(&TmpVector);如果(*nRet != SUCCESS)返回零;返回pBitmap;}