Ho scritto questa funzione per generare poligoni regolari tradotta da una sub Java trovata in internet che richiamo in questo modo
Dim pX AsInteger = CInt(ImmMain.Width / 2) Dim pY AsInteger = CInt(ImmMain.Height / 2) Dim grpath As GraphicsPath = Poligono(CSng(50),CSng(6), CSng(pX), _ CSng(pY), CSng(0)) ImmMain.CreateGraphics.DrawPath(RitPen, grpath) |
errore generato parametro non valido , a me i parametri passati sembrano corretti ma sta di fatto che VB2008 non ne vuole sapere e non capisco il perché. Grazie anticipate se qualcuno è in grado di aiutarmi |
PublicSharedFunction Poligono(ByVal lato AsSingle,ByVal NLati _ AsSingle, ByVal Xc AsSingle, _ ByVal Yc AsSingle, ByVal GrRotaz _ AsSingle) As GraphicsPath Using GrP AsNew GraphicsPath Dim Arc(CInt(NLati))AsSingle Dim vertX(CInt(NLati))AsSingle Dim vertY(CInt(NLati))AsSingle Dim RdRotaz AsSingle = CSng(GrRotaz * Math.PI / 180) Dim ARCHI AsSingle = CSng(360 * Math.PI / 180 / NLati) Dim NFisso AsSingle = CSng(0.5 / Math.Tan(Math.PI / NLati)) Dim Apotema AsSingle = NFisso * lato Dim Raggio AsSingle = CSng(Math.Sqrt(Apotema ^ 2 + _ (lato / 2) ^ 2)) For k AsShort = 0 ToCShort(NLati) Arc(CInt(k)) = ARCHI * k Next For k AsShort = 0 ToCShort(NLati - 1) vertX(k) = CSng(Xc + Raggio * Math.Sin(Arc(k) + RdRotaz)) vertY(k) = CSng(Yc - Raggio * Math.Cos(Arc(k) + RdRotaz)) 'GrP.AddLine(vertX(k), vertY(k), vertX(k + 1), vertY(k + 1)) Next For k AsShort = 0 ToCShort(NLati - 2) GrP.AddLine(vertX(k), vertY(k), vertX(k + 1), vertY(k + 1)) Next (k)
GrP.CloseFigure() Return GrP EndUsing EndFunction |