|
请教各位大侠如何绘制sin+sin的图?
4 `: D5 u( \) b, C h7 t2 ~
5 F( B, D6 s" V C0 I我只找到sin的宏,现在想2个sin相加
( Y5 ?2 T6 M' b6 V i/ f3 P% T% b$ a2 ?8 z
这是我在网上找的,. t- ?9 I, g$ U6 z
Sub sin2()7 a, i- h8 {- j
'由正弦曲线的起点、幅度、周期、周波数、方向来画正弦曲线; u$ B; J" ]. K. E0 G& Q) ]8 \- b
Dim sinObj As AcadLWPolyline
* a" @1 s6 E5 \6 h! A- ]Dim points() As Double m W v0 ~ ]# C# G
Dim a, n, k As Integer
8 J" q4 n1 c) D7 I5 D* {9 d# I3 fDim H, f As Double
& A4 a4 ?1 v3 H! R9 g3 SDim pa, pb As Variant* f$ @& T% t- g9 o
PI = 3.1415926535) R8 N% n$ w2 P- f W) z' N
2 f/ r7 e- S& @- {, S* v
pa = ThisDrawing.Utility.GetPoint(, "请输入正弦曲线起点:")
: [3 [- [: @5 o9 d& MH = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线幅度:")/ p5 c* z, d7 ^6 G
f = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线周期:")
& v! ?7 f& j$ r9 U, gn = ThisDrawing.Utility.GetReal("请输入正弦曲线周波数:")
% c& I+ N# n; {# U, m! zk = ThisDrawing.Utility.GetReal("请输入正弦曲线每周波线段数(建议不小于36):"): C! w* F. `, ]6 ^- [. y& F9 Z4 W- u
pb = ThisDrawing.Utility.GetPoint(pa, "请输入点以确定正弦曲线的方向:")
4 k* h& Q+ U7 O( ~8 l9 E, M. b4 V' A" i9 J4 q+ f, {4 W
ReDim points(0 To 2 * k * n + 1) As Double' u# s6 W. C. ^- H4 C9 ]
b = ThisDrawing.Utility.AngleFromXAxis(pa, pb)
* f5 @$ c5 ~6 r, ^5 \- q) G+ l* H
6 V! J" Z' ?% G) K' pFor a = 0 To 2 * k * n Step 24 t9 o0 y- }$ ?5 P: ?; q, x
points(a) = pa(0) + f * (a / 2) / k
% o" `/ s" S+ e% |" ?. }points(a + 1) = pa(1) + H * Sin(2 * PI * a / k / 2)
5 ?) `; B3 `* e% ?9 L) ~Next
2 \; V6 V P& X! i- X( }/ \, [( j* Q. b! z8 }8 _/ n" S. t( a
Set sinObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)4 l% G( ` C0 ^0 w, t' ~
sinObj.Rotate pa, b
9 d, Z: S9 ? {& G/ JZoomExtents& H. Y( j/ a9 C* v& E8 m5 N
End Sub, g _* v6 R- ^" Z
0 w; L: U7 V7 N' s( E: {* a
) ]9 |6 Y/ L; s6 x# O ^+ l如果可以输入2个sin各自的幅度和周期就可以知道他们相加的曲线!,谢谢 |
|