|
请教各位大侠如何绘制sin+sin的图?3 A9 ~+ U+ w' E+ @4 G. }
& A. w7 Q" ^2 U8 @; r我只找到sin的宏,现在想2个sin相加
3 J. o+ z# A. z7 b$ _' P
; x$ S' q/ _) x$ D这是我在网上找的,! c. ]( Z8 P6 W& g3 p e
Sub sin2()
0 {1 E) y7 k* S6 l& \) K; i'由正弦曲线的起点、幅度、周期、周波数、方向来画正弦曲线# x3 e2 X) ]; Y" n
Dim sinObj As AcadLWPolyline
( e X0 G2 f/ A* F, \2 Z/ uDim points() As Double
1 X. I; D% A0 ~- D4 T) ?4 I; iDim a, n, k As Integer. G# u1 V9 R9 v! _7 [0 K
Dim H, f As Double0 Q. P) N% Z( S) x z+ P
Dim pa, pb As Variant
7 m8 a- ^3 Q# l$ t; FPI = 3.1415926535
" h! d: e! o& {) o+ C) i; W2 ?% D* b+ e3 Z2 v
pa = ThisDrawing.Utility.GetPoint(, "请输入正弦曲线起点:")
9 k' j9 f- L3 lH = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线幅度:")+ g6 ~! p# H3 F( J; [
f = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线周期:")# k5 M3 m; p- ~+ _
n = ThisDrawing.Utility.GetReal("请输入正弦曲线周波数:")( b2 P: ~* k( j/ ~5 x, @( z) ^
k = ThisDrawing.Utility.GetReal("请输入正弦曲线每周波线段数(建议不小于36):")1 h! q4 m2 \7 t8 L8 {
pb = ThisDrawing.Utility.GetPoint(pa, "请输入点以确定正弦曲线的方向:")7 H! c5 @4 U% J+ O, u# w+ T
$ K& ~! V" e) F1 |! @ReDim points(0 To 2 * k * n + 1) As Double
- N; K: I e9 g m6 k6 yb = ThisDrawing.Utility.AngleFromXAxis(pa, pb)
e0 L1 ^! W9 l# ]( j) V0 \ H" _% l+ L. M
For a = 0 To 2 * k * n Step 2
; ^1 p, H& G+ s+ i& x7 ]points(a) = pa(0) + f * (a / 2) / k3 \$ ]. ?: ?- O- J5 j+ R6 a! ^
points(a + 1) = pa(1) + H * Sin(2 * PI * a / k / 2)
$ ^- i- R q" |9 i" g) p& JNext
A( Q) v* H0 [- z; a8 ~
4 _- n/ g. `# }8 q7 ^) W/ \Set sinObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
; H5 l, ^0 g& ?sinObj.Rotate pa, b: K. M' D$ v9 A7 k" f! U/ a2 H& t
ZoomExtents
& Q2 S: W) o4 u$ XEnd Sub
* i% n4 W5 i( O/ _9 }
' Z0 ]8 u: v0 G }$ o) d9 {
/ |4 Q* z- `7 V% ~6 r* ?* K如果可以输入2个sin各自的幅度和周期就可以知道他们相加的曲线!,谢谢 |
|