|
请教各位大侠如何绘制sin+sin的图?+ ^7 t7 W/ ]2 r& m; e5 c7 I
+ L0 M" x' e; |0 Y我只找到sin的宏,现在想2个sin相加
+ ~0 Q/ ]" g6 X6 B
; o, O+ }0 t! {1 D4 }: }5 P这是我在网上找的,
/ H* o7 m% w5 V/ GSub sin2()
8 w6 }1 ^: J) m" b+ b'由正弦曲线的起点、幅度、周期、周波数、方向来画正弦曲线
( m# ^- F- ~' L4 a3 iDim sinObj As AcadLWPolyline1 L6 b1 t9 o4 _) { b6 i
Dim points() As Double% g6 o6 ~5 z* m
Dim a, n, k As Integer% W; V4 `" d; Q- l; X; n, q
Dim H, f As Double
: }' M. e0 B. d2 b7 u7 vDim pa, pb As Variant
7 u. ~3 x7 r8 nPI = 3.1415926535
1 Q1 `. E# K5 V$ `7 Y$ m( a, J; v( X E& f
pa = ThisDrawing.Utility.GetPoint(, "请输入正弦曲线起点:")" K, O) E6 ~# G8 Z* |6 U
H = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线幅度:")
! D0 @& Q! C- Df = ThisDrawing.Utility.GetDistance(pa, "请正弦曲线周期:")
. [+ `! H" O7 p4 }9 On = ThisDrawing.Utility.GetReal("请输入正弦曲线周波数:"): |% F! Y" N1 E1 a+ _
k = ThisDrawing.Utility.GetReal("请输入正弦曲线每周波线段数(建议不小于36):")
1 q1 {4 ? o+ l' J5 q/ Y# p* G. m2 c2 B* Npb = ThisDrawing.Utility.GetPoint(pa, "请输入点以确定正弦曲线的方向:")
2 ]6 [( _4 C$ p4 ~7 I, g3 h
7 U( q+ N' q# r K+ ~3 h+ e/ [ReDim points(0 To 2 * k * n + 1) As Double" @7 w) W5 N: \
b = ThisDrawing.Utility.AngleFromXAxis(pa, pb)' b5 {- Z5 `% b( `, o M m
: U& G8 D; L; ~( l+ s
For a = 0 To 2 * k * n Step 2! f e/ @+ P( f% |2 y
points(a) = pa(0) + f * (a / 2) / k
: W2 q% {4 B6 d8 t! i: V" p6 ?points(a + 1) = pa(1) + H * Sin(2 * PI * a / k / 2)
: y4 g; H L1 A6 l. zNext
) U% j7 h/ D/ y c/ s; e. q( }. C( o- Y4 v1 R7 i0 o( |* k
Set sinObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
. X5 b& f! x4 k d$ a, h0 BsinObj.Rotate pa, b
" |* ]. B) G' c( F8 n' UZoomExtents
@/ m. F) ]9 q( U/ NEnd Sub8 `) O% p/ `/ \% }
, y, P. |1 u% n9 M$ R5 {- v# f% o1 a
# @$ p0 t; n2 b: ^' D如果可以输入2个sin各自的幅度和周期就可以知道他们相加的曲线!,谢谢 |
|