明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1510|回复: 2

对数螺线怎末被填充了?

[复制链接]
发表于 2004-6-8 11:16:00 | 显示全部楼层 |阅读模式
对数螺线怎末被填充了? 在伊凡老师的指导下,我用VBA编制了模拟型的对数螺线,可运行后屏幕上的图形竟被填充了,而不是单纯的一条曲线。在AutoCAD绘图环境中选中它,竟出现了两条曲线,这是何故?如何得到单一一条对数螺线?请大家帮忙看看!谢谢您了!!! Public Sub DrawLog()
Dim line1 As AcadLine
Dim spnt(0 To 2) As Double
Dim epnt(0 To 2) As Double
Dim a As Double
Dim pi As Double
pi = 3.1415926

For a = 0 To 2 * pi Step pi / 360
spnt(0) = 27.36 * Exp(0.176 * a) * Cosa
spnt(1) = 27.36 * Exp(0.176 * a) * Sina
spnt(2) = 0

epnt(0) = 27.36 * Exp(0.176 * (a + pi / 360)) * Cos(a + pi / 360)
epnt(1) = 27.36 * Exp(0.176 * (a + pi / 360)) * Sin(a + pi / 360)
epnt(2) = 0

Set line1 = ThisDrawing.ModelSpace.AddLine(spnt, epnt)

Next a ThisDrawing.Application.ZoomExtents
End Sub
发表于 2004-6-8 20:58:00 | 显示全部楼层
spnt(0) = 27.36 * Exp(0.176 * a) * Cosa
spnt(1) = 27.36 * Exp(0.176 * a) * Sina
晕,怎么能这样 应该是 spnt(0) = 27.36 * Exp(0.176 * a) * Cos(a)
spnt(1) = 27.36 * Exp(0.176 * a) * Sin(a) 不过最好用样式曲线模拟
发表于 2004-6-8 20:59:00 | 显示全部楼层
用多段线生成的程序:
  1. Public Sub DrawLog()
  2.    Dim pline As AcadLWPolyline
  3.    Dim pnts() As Double
  4.    Dim a As Double
  5.    Dim pi As Double
  6.    pi = 3.1415926
  7.    Dim i As Long
  8.    
  9.    For a = 0 To 2 * pi Step pi / 360
  10.        ReDim Preserve pnts(i + 1)
  11.        pnts(i) = 27.36 * Exp(0.176 * a) * Cos(a)
  12.        pnts(i + 1) = 27.36 * Exp(0.176 * a) * Sin(a)
  13.        i = i + 2
  14.    Next a
  15.    
  16.    Set pline = ThisDrawing.ModelSpace.AddLightWeightPolyline(pnts)
  17.    ThisDrawing.Application.ZoomExtents
  18. End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-23 02:17 , Processed in 0.180880 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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