|
请教各位大侠如何绘制sin+sin的图?( v3 a' r( g/ u1 x
! o; W- R) A8 W
我只找到sin的宏,现在想2个sin相加
6 H; W3 ^# J+ b) n1 _( n3 l7 v4 t8 E1 f. F
这是我在网上找的,0 ?% c8 ]0 ^" r
Sub sin2()
# c" ~ p) e, |4 m3 l7 E$ c" X/ P' J'由正弦曲线的起点、幅度、周期、周波数、方向来画正弦曲线
- O" e, i" m5 [4 h! ~! H( XDim sinObj As AcadLWPolyline/ t2 ?: d6 t, ?0 k
Dim points() As Double
5 l" Q W* t3 E/ qDim a, n, k As Integer( d: w6 x& W) N$ |, r
Dim H, f As Double* A* r4 z9 W. V; E# w1 p2 g
Dim pa, pb As Variant) s: h4 c9 O, T
PI = 3.14159265358 C, y; { X# y+ m9 X3 k. P
( H# v) _6 K1 P9 G
pa = ThisDrawing.Utility.GetPoint(, "请输入正弦曲线起点:")
, x( ^7 o- n5 V" B) c* ^H = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线幅度:")
7 N0 J. w7 H0 f: O, c1 q. Jf = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线周期:")" a" z! s+ m5 K! z+ c) s# |- T* i2 Y
n = ThisDrawing.Utility.GetReal("请输入正弦曲线周波数:")$ R. @% E% g1 u P8 L
k = ThisDrawing.Utility.GetReal("请输入正弦曲线每周波线段数(建议不小于36):")
1 d( n3 \% D+ M0 {0 h& v- ]pb = ThisDrawing.Utility.GetPoint(pa, "请输入点以确定正弦曲线的方向:")
+ n" Q3 Q7 @! u; u% E, B( j/ B9 ^; u6 x; M$ Y/ H
ReDim points(0 To 2 * k * n + 1) As Double
0 `% P* J* F6 q7 cb = ThisDrawing.Utility.AngleFromXAxis(pa, pb)+ _/ h9 C! l% ?$ l& @/ t+ f
& G& z! U; R; S: M* F' F, W1 D+ _For a = 0 To 2 * k * n Step 2& n, g; }7 H5 l/ ~' Q% N% J# l: L
points(a) = pa(0) + f * (a / 2) / k
- F3 _6 f4 c( ^/ x; g4 npoints(a + 1) = pa(1) + H * Sin(2 * PI * a / k / 2)+ P+ ?7 e" k0 j* X4 N0 F
Next
) d x* V; }( s; J) c- S! |6 o! t. i# c+ _8 M, h$ h1 e
Set sinObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)3 m' q3 B& w0 `! K
sinObj.Rotate pa, b
1 r+ p6 [. {7 Y0 m# zZoomExtents
8 W% }$ l& |6 p- W# h& e) e* ?End Sub
. H6 I a" g3 [
# S9 Z! V0 m5 H4 `# ]6 K. w. f/ p3 D/ D6 x9 c" `
如果可以输入2个sin各自的幅度和周期就可以知道他们相加的曲线!,谢谢 |
|