当前位置: 首页 > news >正文

如需武汉手机网站建设环球网最新消息疫情

如需武汉手机网站建设,环球网最新消息疫情,网站建设一般的流程,wordpress模板上传图片一、需求 想要绘制如下所示的斜体字,45度 二、分析&思路 Graphics类有个 RotateTransform方法,可以传入任意角度的值来旋转画板。但是这个方法的旋转中心是画板的左上角,所以直接单单用这个方法不能满足我们的需求。此外, G…

一、需求

想要绘制如下所示的斜体字,45度

二、分析&思路

Graphics类有个 RotateTransform方法,可以传入任意角度的值来旋转画板。但是这个方法的旋转中心是画板的左上角,所以直接单单用这个方法不能满足我们的需求。此外, Graphics类还有个 TranslateTransform方法可以改变坐标的原点,而且这个方法是沿着矩形的x,y轴平移的,即就算图片旋转了一定的角度后,再调用 translatetransform 方法,它还是沿着x,y轴平移。于是通过以下三个步骤即可实现图片中心旋转。 

旋转前字体区域顶部为AB,旋转后字体区域顶部为CB
文本AB,旋转后为CB
1、将原点平移到C点
2、绕着新原点C点逆时针旋转45°
3、在新原点C处绘制字符
4、取消旋转
已知:AB=BC=width,∠ABC=45°,B坐标为(Xb,Yb),原点在左上角,求C坐标。
CD = BD = BC ÷ √2 = width ÷ √2
Xc = Xb - BD = Xb - width ÷ √2 
Yc = Yb + CD = Yb +  width ÷ √2

 

 三、代码

#define TOP_EMPTY_HEIGHT 10
#define LEFT_YRULE_WDITH 50 //左侧Y轴间隔
#define RIGHT_YRULE_WDITH 15//右侧Y轴间隔
#define BOTTOM_XRULE_HEIGHT 80 //底部X轴的高度
#define TEXT_RECT_WIDTH 55	//文字区域宽度
#define TEXT_RECT_HEIGHT 13	//文字区域高度DoPaint(HDC hDC, const RECT& rcPaint)
{RECT rectFrame = m_rcItem;rectFrame.top += TOP_EMPTY_HEIGHT;rectFrame.left += LEFT_YRULE_WDITH;rectFrame.right -= RIGHT_YRULE_WDITH;rectFrame.bottom -= BOTTOM_XRULE_HEIGHT;Gdiplus::Graphics graphics(hDC);int nFont = 12; //字体大小DWORD dwTxtColor = 0xFF999999;//文字颜色wstring strText = L"软件服务";RECT rcText;//原字体区域rcText.right = rectFrame.left + 10;rcText.left = rcText.right - TEXT_RECT_WIDTH ;//---------------------------------------------字体样式---------------------------------------//字体Gdiplus::FontFamily fontFamily(L"微软雅黑");Gdiplus::Font font(&fontFamily, (Gdiplus::REAL)nFont, Gdiplus::FontStyleRegular, Gdiplus::UnitPixel);//画刷Gdiplus::SolidBrush brush(dwTxtColor );//字符格式Gdiplus::StringFormat stringformat;stringformat.SetAlignment(Gdiplus::StringAlignmentFar);// 对应右对齐DT_RIGHTstringformat.SetLineAlignment(Gdiplus::StringAlignmentCenter);//对应垂直居中DT_VCENTERstringformat.SetTrimming(Gdiplus::StringTrimmingEllipsisCharacter);//句末显示不完是否使用...代替DT_END_ELLIPSISstringformat.SetFormatFlags(Gdiplus::StringFormatFlagsNoWrap);//对应单行显示DT_SINGLELINE//---------------------------------------------绘制不旋转的字符---------------------------------------Gdiplus::RectF rcfText1(rcText.left, rcText.top, TEXT_RECT_WIDTH, TEXT_RECT_HEIGHT);graphics.DrawString(strText.c_str(), -1, &font, rcfText1, &stringformat, &brush);//----------------------------------------------绘制旋转字符---------------------------------------//translatetransform平移 + rotatetransform旋转//1、把画板(graphics对象)原点平移到位置(x, y)float x = rcText.right - TEXT_RECT_WIDTH / sqrt(2);float y = rcText.top + TEXT_RECT_WIDTH / sqrt(2);graphics.TranslateTransform(x, y);//2、绕新原点(x, y)逆时针旋转画板45度graphics.RotateTransform(-45);//3、在新原点(x, y)处绘制字符Gdiplus::RectF rcfText2(0, 0, TEXT_RECT_WIDTH , TEXT_RECT_HEIGHT );graphics.DrawString(strText.c_str(),-1, &font, rcfText2, &stringformat, &brush);//4、取消旋转graphics.ResetTransform();
}

 

参考:

1、C# 使用 GDI+ 实现添加中心旋转(任意角度)的文字_C#_服务器之家

2、GDI+ 中图像矩阵变换_litanyuan的博客-CSDN博客

3、https://greambwang.blog.csdn.net/article/details/98651600

4、关于Duilib中字体穿透变暗的几种可能性解决方案_8687137的技术博客_51CTO博客

http://www.rdtb.cn/news/19590.html

相关文章:

  • 德州做网站的湖南知名网络推广公司
  • 邢台做移动网站的地方市场营销策划方案书
  • 河南疫情防控最新政策重庆网站优化公司
  • 网站建设前期团队建设seo优化课程
  • 当当网网站的建设过程深圳品牌seo
  • 网站开发用户登陆的安全夫唯老师seo
  • 烟台定制网站建设报价sem搜索
  • 小程序微信怎么开发抖音seo代理
  • 电商网站开发费用登录百度账号
  • 内存128mb做网站够吗上海seo外包公司
  • 重庆潼南网站建设鞍山seo外包
  • 批发网站宁德市医院
  • 厦门专业网站制作自己做网站需要什么条件
  • 阿里云网站备案信息真实性核验单seo研究中心培训机构
  • 做中英文网站 java快速关键词排名首页
  • 搭建什么网站比较赚钱制作网站教学
  • 厦门微网站建设公司广东省自然资源厅
  • 怎么做类似淘宝网站如何优化网络连接
  • 网站开发的英文书有什么海城seo网站排名优化推广
  • 官网网站建设收费seo外链友情链接
  • 龙岗区做网站教育培训网
  • 长春网站设计团队百度关键词自然排名优化公司
  • 如何在各个购物网站之间做差价九江seo优化
  • wordpress 安装权限武汉seo网站排名优化公司
  • 如何创建个人的网站秦皇岛seo优化
  • 佛山网站建设公司排名seo关键词优化系统
  • 备案期间网站可以做竞价吗企业网站的在线推广方法有
  • 东莞做网站定制十大推广app平台
  • 做网站网页的人是不是思维爱站网关键词密度
  • 福州做网站需要多少钱百度一下你就知道网页