|
请教各位大侠如何绘制sin+sin的图?3 [0 y5 V- Z. g) U) I
4 u2 a. L8 [& p2 c( L8 f我只找到sin的宏,现在想2个sin相加# w, m) v9 g- U8 y }4 H
! T- O1 t( T- X5 Z l. O这是我在网上找的,
5 v! T2 K O% d5 SSub sin2()1 x$ H, V G. G9 O# S! j& W
'由正弦曲线的起点、幅度、周期、周波数、方向来画正弦曲线; ]# }' j" i7 ^' D8 _0 @+ `1 a- j
Dim sinObj As AcadLWPolyline
5 O/ p* c. c" }Dim points() As Double
4 p6 q. G7 Y# W% @' J/ P; XDim a, n, k As Integer0 e8 T, f% g; d5 W. H- O
Dim H, f As Double- W/ h2 N" v: L
Dim pa, pb As Variant
2 f+ Y; x3 G9 z) o# j9 j- D6 n4 S/ gPI = 3.1415926535- Y3 Q+ q/ U8 V# T; A6 V" |/ m4 C
0 l4 @' ~3 @. |; |7 S; Apa = ThisDrawing.Utility.GetPoint(, "请输入正弦曲线起点:")
3 h1 ~% \. `/ O4 Q! U2 K1 fH = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线幅度:")
4 M% j1 y5 X) g% S! kf = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线周期:")
3 c9 m U5 Z, c/ Y1 t! jn = ThisDrawing.Utility.GetReal("请输入正弦曲线周波数:")
5 E( Z( ^' U& g# [5 G5 m% \$ Sk = ThisDrawing.Utility.GetReal("请输入正弦曲线每周波线段数(建议不小于36):")) Q( J7 |7 z2 J2 M" Q! ~
pb = ThisDrawing.Utility.GetPoint(pa, "请输入点以确定正弦曲线的方向:")
8 {+ G$ E, G/ Y5 |8 x6 F2 A
9 R) z* W* E% `; H( d4 ?- j$ XReDim points(0 To 2 * k * n + 1) As Double
! a4 ?2 t, j4 B3 _- Ab = ThisDrawing.Utility.AngleFromXAxis(pa, pb)
' N! g7 I" M( ?7 I4 J; V2 Q! m( Q& j( V6 L$ h! r
For a = 0 To 2 * k * n Step 2, J: m# _3 } a, R+ ]5 U
points(a) = pa(0) + f * (a / 2) / k
3 c9 y3 U7 F. {( ~. y epoints(a + 1) = pa(1) + H * Sin(2 * PI * a / k / 2)$ h: l% z' t# g4 v5 J/ X( ]* y
Next
& @* g }. o6 o9 ]+ n" q5 z' c9 `$ L# N3 [+ d
Set sinObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)9 M# ^8 V4 L# {6 C: ?9 f
sinObj.Rotate pa, b
; T0 y' K" X# g0 G+ Q+ \ZoomExtents5 c* g- z- c% d2 s
End Sub
, ~$ C9 o$ c( ]! R
% { G: I- T9 b( |0 ~4 y) C
# Y$ c( B+ z' S6 R如果可以输入2个sin各自的幅度和周期就可以知道他们相加的曲线!,谢谢 |
|