网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月02日漏签0天
coreldrawvba吧 关注:146贴子:337
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回coreldrawvba吧
>0< 加载中...

小圆点阵组成三角形

  • 只看楼主
  • 收藏

  • 回复
  • boybook
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Sub CreatesTriangleY()
'小圆点阵组成三角形
CorelDRAW.ActiveDocument.Unit = cdrMillimeter
'设置毫米单位
Dim s1 As Shape ' 声明一个Shape类型的变量s1,用于存储创建的小圆。
Dim s1R As New ShapeRange ' 声明一个ShapeRange类型的变量s1R,用于存储创建的一系列小圆。
Dim startX As Double ' 声明一个Double类型的变量startX,用于存储小圆的起始X坐标。
Dim startY As Double ' 声明一个Double类型的变量startY,用于存储小圆的起始Y坐标。
Dim CenS As Byte ' 声明一个Byte类型的变量CenS,用于存储层数。最大值255。
Dim CenI As Byte ' 声明一个Byte类型的变量CenI,用于循环计数。最大值255。
Dim CenY As Byte ' 声明一个Byte类型的变量CenY,用于存储层数元素基数。最大值255。
Dim j As Integer ' 声明一个Integer类型的变量j,用于循环计数。
Dim CenJ As Integer ' 声明一个Integer类型的变量CenJ,用于计算每层中间小圆的总数。
Dim PianY As Double ' 声明一个Double类型的变量PianY,用于存储偏移值。
Dim XieLcd As Double ' 声明一个Double类型的变量XieLcd,用于临时存储每层斜边长度。
Dim ResultsXb As Double ' 声明一个Double类型的变量ResultsXb,用于临时存储参数斜边长度。
Dim inX As Double ' 声明一个Double类型的变量inX,用于存储每层中间小圆的X坐标。
Dim inY As Double ' 声明一个Double类型的变量inY,用于存储每层中间小圆的Y坐标。
Dim inR As Double ' 声明一个Double类型的变量inR,用于存储小圆的半径。
Dim hd45 As Double ' 声明一个Double类型的变量hd45,用于存储45度角的弧度值。
startX = 0
startY = 0
PianY = 45
inR = 5
CenS = 8
CenY = 2
hd45 = DegToRad(45)
Set s1 = ActiveLayer.CreateEllipse2(startX, startY, inR)
s1R.Add s1
For CenI = 1 To CenS Step 1
Set s1 = ActiveLayer.CreateEllipse2(startX + CenI * PianY, startY, inR)
s1R.Add s1
Set s1 = ActiveLayer.CreateEllipse2(startX, startY + CenI * PianY, inR)
s1R.Add s1
CenJ = CenI * CenY
XieLcd = DiagonalLength(CenI * PianY, CenI * PianY)
'Debug.Print XieLcd
For j = 1 To CenJ Step 1
ResultsXb = (XieLcd * j / (CenJ + 1))
inX = startX + CenI * PianY - ResultsXb * Sin(hd45)
inY = startY + ResultsXb * Cos(DegToRad(45))
'Debug.Print (XieLcd * j / (CenJ + 1)) * Cos(hd45)
Set s1 = ActiveLayer.CreateEllipse2(inX, inY, inR)
s1R.Add s1
Next j
Next CenI
s1R.Group
s1R.ApplyUniformFill CreateCMYKColor(0, 100, 100, 0)
s1R.SetOutlineProperties Width:=0
End Sub
Private Function DegToRad(ByVal Degrees As Double) As Double
' 将角度转换为弧度
Dim Pi As Double
Pi = 3.14159265
DegToRad = Degrees * Pi / 180
End Function
Private Function DiagonalLength(Width As Double, Height As Double) As Double
'利用勾股定理计算矩形对角线长度函数
Dim Diagonal As Double
Diagonal = Sqr(Width ^ 2 + Height ^ 2)
DiagonalLength = Diagonal
End Function


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回coreldrawvba吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示