|
请教各位大侠如何绘制sin+sin的图?
+ N* c, ~: n) i5 I6 @( A& e/ n& s& M& Z8 }8 ~. G ?/ i
我只找到sin的宏,现在想2个sin相加
' v9 ^! K2 z8 x
4 {/ G# L ~: g+ N( X0 g- u这是我在网上找的,
8 o: ]3 x F- R1 X5 }3 i8 JSub sin2()2 B: X: D( s2 L
'由正弦曲线的起点、幅度、周期、周波数、方向来画正弦曲线4 \) m" w# A9 \1 Y
Dim sinObj As AcadLWPolyline
2 k9 ?7 V; B! o: H" p! p: ]Dim points() As Double& h5 w1 X5 k3 t
Dim a, n, k As Integer) b4 z$ W1 }: _2 }0 {
Dim H, f As Double
6 X; c' J; l) k1 ?6 A$ G% vDim pa, pb As Variant4 I( S3 @4 \/ l: }( A1 q
PI = 3.1415926535
; r- l; K( k8 g- j+ G1 P
" `& e2 L2 L H% g: }; s+ q6 |" wpa = ThisDrawing.Utility.GetPoint(, "请输入正弦曲线起点:")( x( t! |+ E8 N3 P
H = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线幅度:")
& s t2 X4 \/ W- N2 I0 x9 lf = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线周期:")5 |0 p6 W% y d
n = ThisDrawing.Utility.GetReal("请输入正弦曲线周波数:"); H/ b% y3 M+ _) \
k = ThisDrawing.Utility.GetReal("请输入正弦曲线每周波线段数(建议不小于36):")
% |) h& t7 M$ F& v+ i- qpb = ThisDrawing.Utility.GetPoint(pa, "请输入点以确定正弦曲线的方向:")- E j, J Y- f( O2 s
4 _/ A9 X1 E |! S9 YReDim points(0 To 2 * k * n + 1) As Double. b& H3 r- T: g% C- K3 g
b = ThisDrawing.Utility.AngleFromXAxis(pa, pb), ]5 y. G6 Y0 l1 X4 N4 v
, L: ^. `* }$ F3 O/ { c U7 bFor a = 0 To 2 * k * n Step 2
* ?! U/ `" Q) I( B, g9 x: K5 Jpoints(a) = pa(0) + f * (a / 2) / k
* U; b2 d) H6 n; _0 hpoints(a + 1) = pa(1) + H * Sin(2 * PI * a / k / 2)5 p2 v# w- _( `# X' G3 h8 c
Next ^: h( G/ x+ I/ C7 w+ D
! ]8 \+ E$ f9 a" PSet sinObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
F! s. ?6 n! y: e5 {- \* J! IsinObj.Rotate pa, b- f, C8 a, C6 _' d
ZoomExtents
+ {% g/ S4 b* f; u/ r1 \) F$ yEnd Sub: ?8 l( x+ k" p6 p% j3 d
" C3 i+ c E& S1 P5 f
+ W6 {- d4 I. {# f* J5 j如果可以输入2个sin各自的幅度和周期就可以知道他们相加的曲线!,谢谢 |
|