久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

極客學(xué)院 | 微軟PowerPoint繪制陣列教程

 zjshzq 2018-10-07

PowerPoint(PPT)是一款非常優(yōu)秀的工具軟件,,可能大家對(duì)它的第一印象的是用來播放映幻燈片,給客戶展示用,。當(dāng)然,,這是它最本質(zhì)的功能。除此之外,,有少部分人把它當(dāng)作輕量化的矢量繪圖軟件(比如作者),。實(shí)際上,ppt的繪圖能力一點(diǎn)都不差,,除了能夠繪制一些基本的形狀之外,,2013及之后的版本添加了合并形狀的功能,能夠?qū)崿F(xiàn)形狀的聯(lián)合,、組合,、拆分、相交和剪除,,進(jìn)一步增強(qiáng)了其繪圖能力,。

用過其他繪圖軟件的網(wǎng)友應(yīng)該知道,繪制矢量圖時(shí)有一個(gè)非常常用的功能——陣列,。遺憾的是,,直到2016版的PPT都沒有將這個(gè)功能添加進(jìn)去(可能有,作者沒找到),,難道是因?yàn)闆]有人需要這種功能嗎?也許有網(wǎng)友的動(dòng)手能力比較強(qiáng),,直接復(fù)制后再對(duì)齊,非常暴力,。作者屬于比較懶的,,像這種規(guī)則的排列是懶得動(dòng)手的。而且,,常用的陣列有三種:矩形,、環(huán)形、環(huán)形并旋轉(zhuǎn),。第一種可以暴力解決,,后兩種呢?沒有一定的三角函數(shù)的知識(shí)是解決不了的。因此,,作者認(rèn)為,,用程序自動(dòng)陣列是很有必要的。有高手能用VBA解決,缺點(diǎn)是VBA得跟著文檔走,,PPT默認(rèn)還會(huì)禁用宏,,一般用戶不打開開發(fā)工具還找不著它。在PPT的功能界面添加這么一個(gè)功能,,既方便又實(shí)用,。

無圖無真相,先上圖

▲三種不同類型的陣列

▲PPT陣列加載項(xiàng)

“陣列”選項(xiàng)卡完全和內(nèi)置的選項(xiàng)卡融為一體了,,不知道的人還以為是軟件自帶的功能呢,,哈哈。本著能網(wǎng)上下載就不自己動(dòng)手的原則,,先附上下載鏈接(需要.net 4.0),。

下面開始教程:

序言:作者用的是VS2017,PowerPoint 2016,,理論上別的版本也適合,。

1、安裝開發(fā)環(huán)境

▲添加Office/SharePoint開發(fā)

2,、新建PowerPoint 2013和2016 VSTO外接程序

作者用的是C#,,.Net版本需要4.0以上,選中PowerPoint 2013和2016 VSTO外接程序,,給你的工程取個(gè)名字,,如PowerPointArray,單擊確定,。

3,、界面設(shè)計(jì)

3.1 添加一個(gè)Ribbon界面,項(xiàng)目——添加新項(xiàng)——功能區(qū)(可視化設(shè)計(jì)器),,隨便起個(gè)名稱,,如RibbonArray.cs,如圖

3.2 界面設(shè)計(jì)

單擊TadAddIns(內(nèi)置),,在右邊修改成屬性,。ControlldType改成Custom,Label改成陣列,。單擊group1,,其Label改成陣列。在陣列這個(gè)group上拉控件:

Dropdown——1個(gè),,用來存放不同的陣列類型,添加3個(gè)Items,,Label分別設(shè)置為矩形,、環(huán)形、環(huán)形(旋轉(zhuǎn))

EditBox——4個(gè),用來給用戶輸入?yún)?shù)

Button——1個(gè),,生成陣列

最終效果如下圖

4,、開始寫代碼

4.1 雙擊Label為“類型”的DropDown控件,生成SelectionChanged事件,,主要用來更改四個(gè)EditBox的Label,。

private void dropDown1_SelectionChanged(object sender, RibbonControlEventArgs e)

{

        switch (dropDown1.SelectedItemIndex)

        {

            case 0:

                editBox1.Label = '水平間距';

                editBox2.Label = '水平數(shù)量';

                editBox3.Label = '豎直間距';

                editBox4.Label = '豎直數(shù)量';

                break;

            case 1:

            case 2:

                editBox1.Label = '角度';

                editBox2.Label = '數(shù)量';

                editBox3.Label = '中心X';

                editBox4.Label = '中心Y';

            break;

            default:

                break;

        }

   }

在RibbonArray_Load事件中添加如下代碼,讓加載項(xiàng)加載時(shí)選中矩形的陣列類型,。

dropDown1.SelectedItemIndex = 0;

4.2雙擊Label為“生成”的Button控件,,生成Click事件,為生成陣列的主程序,,下面以矩形陣列為例介紹,,各行的含義在代碼中注釋了。

try

{

    if (dropDown1.SelectedItemIndex == 0)

    {

        float xInterval = Convert.ToSingle(editBox1.Text) * 72 / 2.54f;//水平方向間距,,默認(rèn)單位為磅,,需要轉(zhuǎn)換成厘米

        int xNum = Convert.ToInt32(editBox2.Text);//水平方向陣列個(gè)數(shù)

        float yInterval = Convert.ToSingle(editBox3.Text) * 72 / 2.54f;//豎直方向間距,默認(rèn)單位為磅,,需要轉(zhuǎn)換成厘米

        int yNum = Convert.ToInt32(editBox4.Text);//豎直方向陣列個(gè)數(shù)

        Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange.Left -= 12;//選中圖形的位置向左移12磅,,復(fù)制時(shí)會(huì)自動(dòng)加12

        Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange.Top -= 12;//選中圖形的位置向上移12磅,復(fù)制時(shí)會(huì)自動(dòng)加12

        float xOriginal = Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange.Left;//保存下選中圖形的初始位置

        float yOriginal = Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange.Top;

        //開始循環(huán)復(fù)制

        for (int x = 1; x <= xnum;="">

        {

            for (int y = 1; y <= ynum;="">

                {

                        if (x == 1 && y == 1) continue;//已經(jīng)有一個(gè)了,,少?gòu)?fù)制一個(gè)了

                        Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange.Duplicate();//復(fù)制一個(gè),,水平和豎直方向會(huì)自動(dòng)加12

                        Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange.Left = xOriginal + (x - 1) * xInterval;//更改原始圖的位置,為下一次復(fù)制做準(zhǔn)備

                        Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange.Top = yOriginal + (y - 1) * yInterval;

                }

        }

        //最后一個(gè)移到了右下角的位置,,不需要復(fù)制了,,直接手動(dòng)加上12

        Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange.Left += 12;

        Globals.ThisAddIn.Application.ActiveWindow.Selection.ShapeRange.Top += 12;

     }

    else

    {

        //其他陣列代碼

    }

}

catch (Exception ex)

{

    System.Windows.Forms.MessageBox.Show(ex.Message);

}

單擊啟動(dòng),此時(shí)會(huì)自動(dòng)啟動(dòng)PPT,,需要在此之前沒有PPT軟件沒運(yùn)行,。輸入合適的參數(shù),點(diǎn)生成就能直接生成陣列了,。效果如下圖,。

環(huán)形(旋轉(zhuǎn))陣列就屬于數(shù)學(xué)問題了,大家可以自己琢磨,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多