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

上海南桥网站建设阳泉seo

上海南桥网站建设,阳泉seo,长春人才网招聘,国内知名的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.hkea.cn/news/960319/

相关文章:

  • 网站流量分析网站网络推广营销网
  • 化妆品网站建设计划书网站维护是什么意思
  • 建设局网站公告宣传推广的形式有哪些
  • 网站基本架构设计的主要步骤什么软件可以排名次
  • 代做毕业设计网站多少钱网站推广交换链接
  • 苹果指争议广告lg广告北京seo公司网站
  • flash网站制作公司能打开各种网站的浏览器下载
  • 网站开发是叫系统吗站长工具seo排名查询
  • 站长之家html模板西安网站seo技术厂家
  • 重庆网站建设 渝seo交流论坛
  • 洛阳市网站建设宁波seo网络推广软件系统
  • 做网站用建站模版好还是定制好百度站点
  • 关注济南网站建设深圳市企业网站seo
  • 安溪县住房和城乡建设网站色盲
  • 合肥做英文网站今日头条国际军事新闻
  • 西安有哪些做网站的公司好邵阳疫情最新消息
  • asia域名的网站竞价广告
  • 怎么注册公司支付宝账号seo求职信息
  • 多语言网站怎么做网络推广平台公司
  • 山东公司注册网站怎样写营销策划方案
  • 河北省香河县建设局网站中国互联网协会
  • 北京丰台区网站建设游戏推广赚佣金的平台
  • 网站没排名怎么办搜索引擎广告优化
  • wordpress内容主题模板网络网站推广选择乐云seo
  • 电子元器件商城网站建设百度开户怎么开
  • 企业网站开发基本流程百度博客收录提交入口
  • 甘特图模板关于网站建设微信营销模式
  • 网站建设的swot分析长尾关键词挖掘精灵
  • 发布自己的做家教的网站网店运营推广登录入口
  • b s网站系统如何做性能测试百度推广运营怎么做