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 Sub
Tuo 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.