CorelDraw9:ssä on ainakin sellainen ominaisuus kun kynällä piirtää viivaa ja jos siitä tulee "rösöinen" se automaattisesti tasoittaa sen, eli pyöristää terävät reunat.
Mitenköhän olis VB:llä tai yleensäkkin mahdollisuus toteuttaa samaa kun line käskyllä lyhysissä pätkissä piirtää viivoja, tulis sellaiseen käyränpiirtoon jossa käyrä muodostuu pisteiden väliin piirretyistä viivoista.
keskiarvoistus, keskihajonta vai mikä??
Keskihajonta on ainakin tilastomatematiikkaa =) Oli ihan pakko sanoa kun oli siitä eilen lauantaina pieni testin poikanen...
Juu, matemattisesti ne pisteiden kohdat pitäis varmaankin laskee ja sitten pisteillä piirtää ne viivat, mutta miten?
Siis jotain käyrää haluat? Tee vaikka Beziér-käyrällä, implementaatioita varmaan löytyy ihan valmiitakin.
Onko osunnut silmään vb:llä tehtyjä esimerkkejä Beziér käyrästä?
Samaa ongelmaa olen itsekin miettinyt. Eräs ratkaisu on piirtää viiva siten, että vedät hiirellä sopivan mittaista pätkää, jonka toinen pää piirtää viivaa.
lainaus:
Onko osunnut silmään vb:llä tehtyjä esimerkkejä Beziér käyrästä?
Eipä ole mutta voin sinulle sellaisen vääntää kunhan kerkeän.
Tässä olisi eräs tapa saada nättiä käyrää. Esimerkissä käyrä piirretään suoraan formille. Formin ScaleMode=1
Option Explicit
Dim xx As Single, yy As Single
Dim dx As Single, dy As Single
Dim s As Single, ss As Single
Private Sub Form_Load()
ss = 700 'oletusarvo ss:lle
End Sub
'käyrän aloituspiste
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
PSet (X, Y)
xx = X: yy = Y
End Sub
'piirretään käyrää
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 0 Then Exit Sub
'asetetaan ss eli hännän pituus
If Shift Then ss = Sqr((X - xx) ^ 2 + (Y - yy) ^ 2): Exit Sub
dx = X - xx: dy = Y - yy
s = Sqr(dx * dx + dy * dy)
If s > ss Then
s = s - ss
Line -Step(s * dx / ss, s * dy / ss)
xx = xx + s * dx / ss: yy = yy + s * dy / ss
End If
End SubTuo oli kätevä väsäys.
Tossa on vaan se, kun vetää viivaa ja jyrkästi muuttaa suuntaa se tekee terävän kulman, pitäis saada sillein että se kulma puöristyis.
Tuosa on hiirtä liikuteltava tietyn matkan paassä käyrän loppupisteestä. kaarevuuden voi säädellä loivaksi tai jyrkäksi ihan hiiren liikkeillä. Teräviä kulmia saa käyrään, jos etäisyyttä pienentää ja muuttaa suuntaa samalla. Vähän koodia lisäämällä mukaan saa "kuminauhaviivan", joka helpottaa piirtämistä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.