|
请教各位大侠如何绘制sin+sin的图?
9 a# C! a* F! z' j
* Z, |4 _# p2 O' N+ |, b我只找到sin的宏,现在想2个sin相加
1 `# x' y- G6 i4 w% f# X4 A5 t. Z& }; T; _) y/ b1 @! Q
这是我在网上找的,
- F) Z7 F9 p( D2 H3 lSub sin2()
{+ M! r- P: a: w'由正弦曲线的起点、幅度、周期、周波数、方向来画正弦曲线; S2 Q* t+ P# `2 {, a
Dim sinObj As AcadLWPolyline* S* H" H+ u: s# K
Dim points() As Double- g' s6 J3 R+ P2 K
Dim a, n, k As Integer
% x m8 B+ q% K& Z1 rDim H, f As Double8 f. ] J) c8 X8 Q8 a' a% v# W7 [' S
Dim pa, pb As Variant) i8 l* h9 T2 D$ w) M
PI = 3.1415926535
# |2 k! @' r8 E
/ p$ h! y; u' F% r, e( L fpa = ThisDrawing.Utility.GetPoint(, "请输入正弦曲线起点:")
% W O4 d4 I% d0 R$ C, oH = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线幅度:")( x, z' ^7 e0 Z1 k/ |
f = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线周期:")
# H! U( |( N4 Z: U# i5 _n = ThisDrawing.Utility.GetReal("请输入正弦曲线周波数:") ]* X. H5 n& n4 v3 O% L
k = ThisDrawing.Utility.GetReal("请输入正弦曲线每周波线段数(建议不小于36):")% s* @8 m: j% U8 n0 d
pb = ThisDrawing.Utility.GetPoint(pa, "请输入点以确定正弦曲线的方向:")7 w- n0 Z6 G b; a
7 r, S1 V. f( @# o
ReDim points(0 To 2 * k * n + 1) As Double
0 g1 t& b6 c, R+ `b = ThisDrawing.Utility.AngleFromXAxis(pa, pb)
1 r5 ]8 q1 u" x6 H" z* B& D" r
9 m$ b! {( s5 c" U5 rFor a = 0 To 2 * k * n Step 27 l' a. a) }5 r) n1 g
points(a) = pa(0) + f * (a / 2) / k
+ j: t' q/ J5 [* ?* ?points(a + 1) = pa(1) + H * Sin(2 * PI * a / k / 2)
) O" f/ U( N5 b: J- s6 T- Z+ [! YNext, W8 z! R( c6 f! r- T+ z! {8 \
% H1 K% P- l/ p( p' d! U
Set sinObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)/ o- R& L& o; x6 e0 O4 Z' n! \
sinObj.Rotate pa, b
$ s% y( Q# c ]5 F4 u- hZoomExtents1 e$ c4 w! H/ W
End Sub
" n7 _) w* A. K- N: Y& N0 B" y( T5 h, V5 `
; k4 p8 y `- b9 Z' {! v6 J
如果可以输入2个sin各自的幅度和周期就可以知道他们相加的曲线!,谢谢 |
|