提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
@
2022年6月23日,小白笔记,复习之前的MstnVBA代码,因为目前还做不到完全自己背诵或编写出来,虽然简单,温故知新~
Mstn中没有单独的圆的概念,圆实际上是椭圆的一种形态,只不过该形态下长半轴和短半轴的值相等: a=b
Sub Main()
'声明变量
Dim MyLine As LineElement
Dim MyCir As EllipseElement
Dim CenPt As Point3d
Dim LineSt As Point3d
Dim LineEn As Point3d
Dim RotMatrix As Matrix3d
'生成水平线
LineSt.X = -1
LineEn.X = 1
'上面只给了起点LineSt和终点LineEn的x值,y值默认是0,这里不给值的话那就是(-1,0)到(1,0)的一条线
Set MyLine = Application.CreateLineElement2(Nothing, LineSt, LineEn)
Application.ActiveModelReference.AddElement MyLine
'生成垂直线
LineSt.X = 0: LineSt.Y = 1
LineEn.X = 0: LineEn.Y = -1
'上面给起点LineSt和终点LineEn赋值0是因为在生成水平线时给他赋值了
Set MyLine = Application.CreateLineElement2(Nothing, LineSt, LineEn)
Application.ActiveModelReference.AddElement MyLine
'生成圆,用CreateEllipseElement2函数,CenPt是圆心,圆心不赋值的话默认就是(0,0,0),CenPt参数后面紧跟着是圆的a,b半径
Set MyCir = Application.CreateEllipseElement2(Nothing, CenPt, 0.25, 0.25, RotMatrix)
Application.ActiveModelReference.AddElement MyCir
Set MyCir = Application.CreateEllipseElement2(Nothing, CenPt, 0.5, 0.5, RotMatrix)
Application.ActiveModelReference.AddElement MyCir
End Sub
不知道是个人原因还是哪里不对,在原书中的这个例子有点问题,原封不动抄下来后却跑不起来,应该是在DrawTarget过程中没有定义输入参数,根据个人理解稍加调整后可以运行,改后代码如下:
Sub DrawTarget(CenX As Long, CenY As Long, CenZ As Long)
'声明变量
Dim MyLine As LineElement 'LineElement是Mstn线元素
Dim MyCir As EllipseElement 'EllipseElement是Mstn椭圆元素
Dim CenPt As Point3d '声明原点
Dim LineSt As Point3d '声明起点
Dim LineEn As Point3d '声明终点
Dim RotMatrix As Matrix3d '声明平面
'生成水平线,这段代码中的x,y,z没有赋值,调用DrawTarget过程的时候,需要另外赋值才能画出来图形
LineSt.X = CenX - 1
LineSt.Y = CenY
LineSt.Z = CenZ
LineEn.X = CenX + 1
LineEn.Y = CenY
LineEn.Z = CenZ
Set MyLine = Application.CreateLineElement2(Nothing, LineSt, LineEn)
Application.ActiveModelReference.AddElement MyLine
'生成垂直线,这段代码中的x,y,z没有赋值,调用DrawTarget过程的时候,需要另外赋值才能画出来图形
LineSt.X = CenX
LineSt.Y = CenY + 1
LineSt.Z = CenZ
LineEn.X = CenX
LineEn.Y = CenY - 1
LineEn.Z = CenZ
Set MyLine = Application.CreateLineElement2(Nothing, LineSt, LineEn)
Application.ActiveModelReference.AddElement MyLine
'生成圆,这段代码中的x,y,z没有赋值,调用DrawTarget过程的时候,需要另外给圆心赋值才能画出来固定半径的圆形
CenPt.X = CenX
CenPt.Y = CenY
CenPt.Z = CenZ
Set MyCir = Application.CreateEllipseElement2(Nothing, CenPt, 0.25, 0.25, RotMatrix)
Application.ActiveModelReference.AddElement MyCir
Set MyCir = Application.CreateEllipseElement2(Nothing, CenPt, 0.5, 0.5, RotMatrix)
Application.ActiveModelReference.AddElement MyCir
End Sub
'下面是用Main来调用DrawTarget函数来绘制图形
Sub Main()
'绘制靶形图, 输入三个参数来绘制图形
DrawTarget 0, 0, 0
DrawTarget 3, 0, 0
DrawTarget -3, 0, 0
DrawTarget 0, 3, 0
DrawTarget 0, -3, 0
End Sub
事先并不知道参数数组中有多少个半径值,有一个半径值就绘制一个靶心, 所以在程序中使用了一个 For…Next 循环来查看每一个值并分别以之为半径来生成新的圆。
Sub DrawCircle4(X As Double, Y As Double, Z As Double, ParamArray Radii() As Variant)
'声明变量
Dim MyCir As EllipseElement
Dim CenPt As Point3d
Dim RotMatrix As Matrix3d
Dim I As Long
'生成圆
CenPt.X = X
CenPt.Y = Y
CenPt.Z = Z
'LBound函数返回一个 Long 型值,其中包含指示的数组维度的最小可用下标
'UBound函数返回一个 Long 型值,其中包含指示的数组维度的最大可用下标
For I = LBound(Radii) To UBound(Radii)
Set MyCir = Application.CreateEllipseElement2(Nothing, CenPt, Radii(I),Radii(I),RotMatrix)
Application.ActiveModelReference.AddElement MyCir
Next I
End Sub
'调用上面的DrawCircle4过程
Sub Main()
DrawCircle4 1,1,0,0.25,0.5,0.75,1,1.25,1.5
'1,1,0是确定圆心位置的,后面的两个数是数组来绘制6个圆
End Sub
函数出了返回值和类型外,还能返回对象,下面例子就是:
如果打开的excel中sheet里对应的B2,C2,D2有内容,那么在立即窗口里会立刻显示相应的内容
Function GetExcelWS() As Object '取得Excel中的当前工作表
Dim ExcelApp As Object
Set ExcelApp = GetObject(,"Excel.Application")
Set GetExcelWs = ExcelApp.activesheet
End Function
Sub TestGetExcelWS()
Dim MyWS As Object
Dim Cell1 As Double
Dim Cell2 As Double
Dim Cell3 As Double
Set MyWS = GetExcelWS
Cell1 = MyWS.Range("B2")
Cell2 = MyWS.Range("C2")
Cell3 = MyWS.Range("D2")
End Sub
上面的都是最最简单的基础内容, 感觉对于没啥经验的人来说,还是需要练手的, 对于有经验的人,那这内容应该是太小儿科了~
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has
我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru
我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的
几个月前,我读了一篇关于rubygem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:
我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur
前言作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以程序员在程序开发过程中的代码能力也是根据平时开发中的业务实践来积累和提升的。提高代码能力核心要素程序员要想提高自身代码能力,尤其是新晋程序员的代码能力有很大的提升空间的时候,需要针对性的去提高自己的代码能力。提高代码能力其实有几个比较关键的点,只要把握住这些方面,就能很好的、快速的提高自己的一部分代码能力。1、多去阅读开源项目,如有机会可以亲自参与开源
嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总