找回密码
 加入
搜索
查看: 41715|回复: 153

[图形处理] 这个代码能否转为AU3的?

 火...   [复制链接]
发表于 2017-7-2 17:45:11 | 显示全部楼层 |阅读模式
这个代码能否转为AU3的?这么短的代码画的图看起来很不错啊。
void CRotateAnimation::DrawPie(HDC hDC)  
{  
    Gdiplus::Graphics* pGraphics=new Gdiplus::Graphics(hDC);  
    pGraphics->SetSmoothingMode(SmoothingModeHighQuality);  
    Gdiplus::Color clr(150,0,0,0);  
    Gdiplus::SolidBrush* pBrush=new Gdiplus::SolidBrush(clr);  
    //--------------------------------------------------------  
    //计算外圈、内圈位置  
    Gdiplus::Rect rcOut(m_Rect);  
    Gdiplus::Rect rcIn(rcOut);  
    rcIn.Inflate(-m_ItemSize,-m_ItemSize);  
    //--------------------------------------------------------  
    //先画出外圈小方块  
    float fStartAngle = -90;//起始绘制角度  
    float fSweepAngle = 360 / m_AnimationCount;//每小块的角度  
    for(int i=0;i<m_AnimationCount;i++)  
    {  
        clr.SetFromCOLORREF(m_pAnimationArray[i].clrOut);  
        pBrush->SetColor(clr);  
        pGraphics->FillPie(pBrush,rcOut, fStartAngle, fSweepAngle - m_MarginAngle);  
        fStartAngle = fStartAngle + fSweepAngle;  
    }  
    //--------------------------------------------------------  
    //画出内圈小方块;  
    fStartAngle = -90;  
    for(int i=0;i<m_AnimationCount;i++)  
    {  
        clr.SetFromCOLORREF(m_pAnimationArray[i].clrIn);  
        pBrush->SetColor(clr);  
        pGraphics->FillPie(pBrush,rcIn, fStartAngle, fSweepAngle - m_MarginAngle);  
        fStartAngle = fStartAngle + fSweepAngle;  
    }  
    //--------------------------------------------------------  
    //画出中间圆心,用控件底色填充  
    rcIn.Inflate(-m_ItemSize,-m_ItemSize);  
    clr.SetFromCOLORREF(m_ColorBack);  
    pBrush->SetColor(clr);  
    pGraphics->FillEllipse(pBrush,rcIn);  
    //--------------------------------------------------------  
    delete pBrush;  
    delete pGraphics;  
}  
http://blog.csdn.net/CometNet/article/details/53363596
发表于 2017-7-2 21:27:42 | 显示全部楼层
能上完整的代码吗?
发表于 2017-7-2 22:41:24 | 显示全部楼层
你总不能让我们自己去CSDN下载吧,要积分的
发表于 2017-7-2 22:52:31 | 显示全部楼层
像C++的代码,不懂,帮不上忙,不过官方有例子,可以参考https://www.autoitscript.com/for ... -autoit-conversion/
发表于 2017-7-2 22:59:35 | 显示全部楼层
画圆还可以,就是旋转那个,感觉是在另外的函数里面控制颜色,把全部代码发出来,看下旋转用的是什么算法。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2017-7-3 00:24:17 | 显示全部楼层
本帖最后由 joint 于 2017-7-3 00:31 编辑
能上完整的代码吗?
haijie1223 发表于 2017-7-2 21:27


不好意思,没看清,以为上面的已经是完整的了,刚才去下载了。
这是完整的:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2017-7-3 00:27:17 | 显示全部楼层
像C++的代码,不懂,帮不上忙,不过官方有例子,可以参考
lpxx 发表于 2017-7-2 22:52


谢谢,前面的代码是VC和易语言的,刚才下载了,在我刚才发的帖子里。
发表于 2017-7-3 13:05:33 | 显示全部楼层
大体就是这么个意思吧?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2017-7-3 22:24:42 | 显示全部楼层
本帖最后由 joint 于 2017-7-4 09:18 编辑
大体就是这么个意思吧?
haijie1223 发表于 2017-7-3 13:05


是的,太牛了,  hai大威武。
关注这样的样例是因为需要做个实时动态显示的窗口。 一开始感觉Vispy挺合适,仔细一看,发现太难,需要C和OpenGL相关的基础,根本不是我这样的初学者可以做到的。
前些天刚发现au3的界面功能也挺丰富的,就想探讨下可能性。您是这方面的专家,麻烦帮看看这样的需求用au3做是否合适:
大致如下图:


第一个为柱状堆积图,但是需要实时显示和交互。
第二张图为可交互的色块图,想通过在ListView上添加控件实现,从这个帖子看ListView上添加控件应该没问题:
http://www.autoitx.com/forum.php ... &from=favorites
所以又找了些绘制圆和长方块的源码,希望能把绘图部分的函数提取出来,然后在ListView绘制。
但是这对我来说比较难,所以发了个求助帖:http://www.autoitx.com/thread-55549-1-1.html
但是好像没什么人回复,感觉这个可能也比较难。

因为要绘制的图形都是比较简单的标准图形,所以,后来又想是不是可以直接用字符图案代替图形的绘制?
见:各种字符图案代码
http://www.360doc.com/content/14/0105/15/9708896_342803932.shtml

hai大您是专家,现在有种终于找到组织的感觉,麻烦帮忙看看,我这个需求,采用什么样的方式做比较好。谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-7-3 22:30:44 | 显示全部楼层
回复 9# joint


    你这个需求好像不是一两天了,你这个单似乎在论坛之外就已经看到了。只是要求过于繁琐,没人愿意接。
 楼主| 发表于 2017-7-3 22:38:02 | 显示全部楼层
本帖最后由 joint 于 2017-7-3 22:39 编辑
回复  joint
    你这个需求好像不是一两天了,你这个单似乎在论坛之外就已经看到了。只是要求过于繁 ...
haijie1223 发表于 2017-7-3 22:30


是啊,这困难困扰我有段时间了。
难点主要在哪里?我看看是否可以简化下。
发表于 2017-7-3 22:51:54 | 显示全部楼层
回复 11# joint


    手机爬论坛费劲,Q聊吧
 楼主| 发表于 2017-7-3 22:55:31 | 显示全部楼层
回复 12# haijie1223

ok
发表于 2017-7-9 22:02:53 | 显示全部楼层
#include <GDIPlus.au3>
_GDIPlus_GraphicsDrawPie ( $hGraphics, $nX, $nY, $nWidth, $nHeight, $fStartAngle, $fSweepAngle [, $hPen = 0] )
发表于 2017-7-10 09:14:05 | 显示全部楼层
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 00:49 , Processed in 0.176210 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表