D2D画箭头的例子

用处

画流场图的时候需要画出带有箭头的矢量线表示流场

效果图

直接看箭头图效果
效果

代码

void ArrowTo(D2D1_POINT_2F start, D2D1_POINT_2F end, ID2D1HwndRenderTarget* pRTarget, ID2D1SolidColorBrush* pBrush)
{

    double slopy, cosy, siny;
    double length; //length of Arrow 
    length = 0.05 * sqrt((start.y - end.y)*(start.y - end.y) + (start.x - end.x)*(start.x - end.x)); 
    slopy = atan2((start.y - end.y), (start.x - end.x));
    cosy = cos(slopy);
    siny = sin(slopy);
    D2D1_POINT_2F p[3];
    D2D1_POINT_2F start;

    start.x = pstart.x;
    start.y = pstart.y;

    p[0].x = pend.x;
    p[0].y = pend.y;

    p[1].x = pend.x + length * cosy - (length / 2.0 * siny);
    p[1].y = pend.y + length * siny + (length / 2.0 * cosy);

    p[2].x = pend.x + length * cosy + length / 2.0 * siny;
    p[2].y = pend.y - length / 2.0 * cosy + length * siny;

    pRTarget->DrawLine(start, p[0], pBrush);

    pRTarget->DrawLine(p[0], p[1], pBrush);
    pRTarget->DrawLine(p[0], p[2], pBrush);

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
[4.1.18.xxx] [!] 修复win10菜单黑底BUG [!] 修复编辑框圆角BUG [!] Ex_ObjFind 查找BUG [!] Ex_ObjGetObj GW_HWNDLAST/GW_HWNDFIRST BUG [+] 新增了控件属性相关接口 Ex_ObjInitPropList/Ex_ObjSetProp/Ex_ObjGetProp/Ex_ObjRemoveProp/Ex_ObjEnumProps [+] 新增了线性布局属性:#ELP_LINEAR_DALIGN 表示布局方向的对齐方式 [+] 新增了绝对布局接口 _layout_absolute_setedge、_layout_absolute_lock [!] _layout_settableinfo 更名为 _layout_table_setinfo [!] _layout_eableupdate 更名为 _layout_enableupdate [!] Ex_LayoutXXX  更名为 Ex_ObjLayoutXXX [!] 删除 Ex_DUIXXX(背景相关函数) 由 Ex_ObjXXX(背景相关函数) 代替 [!] 信息框常量 EMF_ 修改为 EMBF_ [!] Ex_TrackPopupMenu() 新增菜单标记参数和常量 EMNF_ [+] 增加全局常量 EXGF_MENU_ALL (渲染全部菜单) [!] Ex_ObjSetRgn 修改为 Ex_ObjSetPath [+] Ex_ObjSetRadius [+] 增加路径相关函数 _path_xxx() [!] Ex_scaleX/Y 统一为 Ex_Scale() [+] Ex_ObjScrollShow/Ex_ObjScrollEnable [+] EOS_DISABLENOSCROLL (滚动条不可用时禁止而不隐藏) [4.1.18.313] [+] 增加缓动机制,详见demo [!] 修改了Ex_ObjCallProc的参数,新增最后一个参数 [+] 新增“脚本分发信息_Ex”结构,方便控件处理自定义JS函数 [+] demo中增加了布局和程序交互的例子 [!] 修复2处内存泄漏BUG [!] 修复1处导致退出崩溃BUG [!] 修复1处导致退出CPU占用BUG [4.1.18.309] [+] 主窗口背景模糊支持 (EWS_BLUR/Ex_DUISetBlur) [!] 主窗口标显示修复 [!] 主窗口移动CPU占用修复 [+] 组件事件冒泡支持 (Ex_ObjEnableEventBubble) [+] 组件坐标转换 (Ex_ObjPointTransform) [+] Ex_ObjSetPadding/Ex_ObjSetFont/Ex_ObjGetFont [!] 修复了通知机制的BUG [!] 修复了ExFC中关于矩形传参的BUG [4.1.18.306] [+] xml style/script/include 引用支持 [+] 模版列表支持 [!] 子窗口 继承父窗口背景信息 完善 [!] 滚动条 相关BUG [!] 修复了ExFC中控件移动的参数错误 [!] 修复了demo中重复打开窗口导致的崩溃 [+] 增加控件扩展demo(滑块条) [4.1] 综合: [+] 布局支持(xml/css) [+] 脚本支持(js) [+] 主题包(窗口/组件/菜单) [+] 多语言支持(i18n) [+] dpi 支持 [+] apng动支持 窗口: [+] 普通/分层/异型 窗口支持 [+] d2d/gdi(+) 渲染支持 组件: [+] 异型 组件支持 [+] 组件层 模糊支持 其它: [+] 信息框/菜单 改造 [+] 界面/逻辑 分离 ========================================== 泆寒
使用方法:将配套的模块与DLL放到运行程序目录一起即可.比如: 用易语言新建立了一个程序,名称为[新程序.e]那么就放到和它一起的目录,添加模块即可. 搜集不宜,闲分多的请绕行. (包内无任何连接广告,纯绿色)压缩包内包括内容如下: --------------------------------以下为EDgame2d 引擎 D2D.ec 模块正式版本包括: 版本号: 1.0.5.15 大小: 628 kb 版本号: 1.0.5.15 大小: 635 kb 版本号: 1.0.6.20 大小: 652 kb 版本号: 1.0.7.20 大小: 660 kb 版本号: 1.0.7.70 大小: 653 kb 版本号: 1.0.8.70 大小: 664 kb 版本号: 1.0_学习版本 大小: 661 kb 版本号: 2.0_坏少爷完美破解(赞助版) 大小: 307 kb(最新) 版本号: 2.0_竹林深处破解(赞助版) 大小: 307 kb(最新) D2D.ec 模块扩展版本包括: 版本号: 1.0 大小: 83 kb 版本号: 1.1 大小: 86 kb 版本号: 1.2 大小: 91 kb D2D.dll 正式版本包括: 版本号: 1.0.0.1 大小: 952 kb 版本号: 1.0.5.15 大小: 824 kb 版本号: 1.0.6.20 大小: 507 kb 版本号: 1.0.7.20 大小: 417 kb 版本号: 1.0.8.70 大小: 417 kb 版本号: 1.0.8.17 大小: 433 kb 版本号: 1.0.8.28 大小: 418 kb 版本号: 1.0.11.25 大小: 427 kb 版本号: 1.0.6.20 大小: 507 kb 版本号: 1.0.0.1 大小: 846 kb 版本号: 1.0.0.1 大小: 847 kb 版本号: 1.0.0.1 大小: 925 kb 版本号: 1.0.0.1 大小: 957 kb 版本号: 1.0.0.1 大小: 961 kb 版本号: 1.1.2.7 大小: 519 kb(最新) bass.dll 正式版本包括: 版本号: 2.3.0.3 大小为: 91 kb ScriptManager.dll 正式版本包括: 版本号: 未知 大小为: 55kb --------------------------------以下为Galaxy2d 引擎 G2D.ec 版本号:4.102 大小为: 109 kb Galaxy2d.dll 版本号: 未知 大小为: 903 kb star.dll 版本号: 未知 大小为: 102 kb --------------------------------以下为Pge2d 引擎 pge32.ec 版本号: 15.316 大小为: 917kb PGE32.dll 版本号: 15.125.12.12 大小为: 1.72M

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值