MFC中简单图形的平移与简单旋转

 #include "stdafx.h"
 #include "hui.h"
 #include "HuiTu.h"//为自己建立的主程序头文件


hui::hui()
: m_ptOrigin(0)
, m_ptEnd(0)
, m_nDrawType(0)
, pbrush(0)
, m_left(0)
, m_right(0)
, pi(3.1415921253589793238412)
, rotateNum(0)
{
}

hui::hui(int m_nDrawType,CPoint m_ptOrigin,CPoint m_ptEnd, COLORREF m_color, int m_index,int m_nlineWide, int m_nlineStyle, CString text)//用指针储存变量
{
this->m_nDrawType = m_nDrawType;
this->m_ptOrigin = m_ptOrigin;
this->m_ptEnd = m_ptEnd;
this->m_color = m_color;
this->m_index = m_index;
this->m_nlineWide = m_nlineWide;
this->m_nlineStyle = m_nlineStyle;
this->text=text;

CPoint center(getCenter());
m_left.x = m_ptOrigin.x;
m_left.y = 2 * center.y - m_ptOrigin.y;
m_right.x = m_ptEnd.x;
m_right.y = 2 * center.y - m_ptEnd.y;
 rotateNum = 0;
 }

hui::~hui()
{
}
CPoint hui::getCenter()//计算中心
{
return CPoint((m_ptOrigin.x + m_ptEnd.x)/2, (m_ptOrigin.y + m_ptEnd.y)/2);
}


void hui::rotateNi()//逆时针旋转
{
if (m_nDrawType == 2 || m_nDrawType == 3)
{
    CPoint center(getCenter());
    int x, y;
    x = static_cast<int>((m_ptOrigin.x - center.x) * cos(pi / 12) - (m_ptOrigin.y - center.y) * sin(pi / 12)) + center.x;
    y = static_cast<int>((m_ptOrigin.x - center.x) * sin(pi / 12) + (m_ptOrigin.y - center.y) * cos(pi / 12)) + center.y;
    m_ptOrigin.x = x;
    m_ptOrigin.y = y;
    x = static_cast<int>((m_ptEnd.x - center.x) * cos(pi / 12) - (m_ptEnd.y - center.y) * sin(pi / 12)) + center.x;
    y = static_cast<int>((m_ptEnd.x - center.x) * sin(pi / 12) + (m_ptEnd.y - center.y) * cos(pi / 12)) + center.y;
    m_ptEnd.x = x;
    m_ptEnd.y = y;
    x = static_cast<int>((m_left.x - center.x) * cos(pi /
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值