画坐标箭头函数封装
2012-09-25 09:40
351 查看
float g_fConstValue = 3.14f / 180.0f; //常数
//--------------------------------------------------------------------------------------
//HDC ,dwAngle:箭头方向, ptCenter
:
//--------------------------------------------------------------------------------------
void DrawArrow( HDC hDC, DWORD dwAngle, POINT ptCenter )
{
float fTmp = dwAngle * g_fConstValue;
HPEN hPen = CreatePen( PS_SOLID, 2, RGB( 200, 200, 2 ) );
HGDIOBJ hOldObj = SelectObject( hDC, hPen );
int usX = ptCenter.x + int( 60 * sin( fTmp ));
int usY = int( ptCenter.y - 60 * cos( fTmp ));
MoveToEx( hDC, ptCenter.x, ptCenter.y, NULL );
LineTo ( hDC, usX, usY );
DWORD usAngleValue2 = ((( dwAngle + 180 ) % 360 ) + 30 ) % 360;
fTmp = usAngleValue2 * g_fConstValue ;
int usX2 = usX + int( 12 * sin( fTmp ));
int usY2 = usY - int( 12 * cos( fTmp ));
MoveToEx( hDC, usX, usY, NULL );
LineTo( hDC, usX2, usY2 );
usAngleValue2 = ((( dwAngle + 180 ) % 360 ) + 360 - 30 ) % 360;
fTmp = usAngleValue2 * g_fConstValue ;
usX2 = usX + int( 12 * sin( fTmp ));
usY2 = usY - int( 12 * cos( fTmp ));
MoveToEx( hDC, usX, usY, NULL );
LineTo( hDC, usX2, usY2 );
SelectObject( hDC, hOldObj );
DeleteObject( hPen );
}
//--------------------------------------------------------------------------------------
//HDC ,dwAngle:箭头方向, ptCenter
:
//--------------------------------------------------------------------------------------
void DrawArrow( HDC hDC, DWORD dwAngle, POINT ptCenter )
{
float fTmp = dwAngle * g_fConstValue;
HPEN hPen = CreatePen( PS_SOLID, 2, RGB( 200, 200, 2 ) );
HGDIOBJ hOldObj = SelectObject( hDC, hPen );
int usX = ptCenter.x + int( 60 * sin( fTmp ));
int usY = int( ptCenter.y - 60 * cos( fTmp ));
MoveToEx( hDC, ptCenter.x, ptCenter.y, NULL );
LineTo ( hDC, usX, usY );
DWORD usAngleValue2 = ((( dwAngle + 180 ) % 360 ) + 30 ) % 360;
fTmp = usAngleValue2 * g_fConstValue ;
int usX2 = usX + int( 12 * sin( fTmp ));
int usY2 = usY - int( 12 * cos( fTmp ));
MoveToEx( hDC, usX, usY, NULL );
LineTo( hDC, usX2, usY2 );
usAngleValue2 = ((( dwAngle + 180 ) % 360 ) + 360 - 30 ) % 360;
fTmp = usAngleValue2 * g_fConstValue ;
usX2 = usX + int( 12 * sin( fTmp ));
usY2 = usY - int( 12 * cos( fTmp ));
MoveToEx( hDC, usX, usY, NULL );
LineTo( hDC, usX2, usY2 );
SelectObject( hDC, hOldObj );
DeleteObject( hPen );
}
相关文章推荐
- PHP对图像函数进行封装,以左下角为坐标原点
- JavaScript 箭头函数(Lambda表达式)
- 自己封装的javascript事件队列函数版
- 无缝滚动改进版支持上下左右滚动(封装成函数)
- 设备坐标与逻辑坐标相互转换的两个函数
- javaScript--arrow functions(箭头函数)解析
- ES6的箭头函数介绍
- 箭头函数和非箭头函数的区别
- 微信网页授权-函数封装
- C++实现修改函数代码HOOK的封装方法
- javascript自执行函数之伪命名空间封装法
- JavaScript Functional Programming:箭头函数 Arrow functions
- ECMAScript6箭头函数ArrowFunction"=>"
- Javascript学习笔记_箭头函数
- 数组操作函数封装
- 机房收费系统—封装函数
- 点击按钮控制div上下运动——函数封装2
- 工作笔记——一些常用函数的封装
- 一句话改变TWinControl控件的left坐标的前世今生(入口函数是SetBounds,然后调用SetWindowPos起作用,并发消息更新Delphi的left属性值)
- 【JavaScript】什么时候不能用箭头函数