eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingcircle midpoint + windowing, reverse, REAKTYWACJARe: circle midpoint + windowing, reverse, REAKTYWACJA
  • Data: 2015-10-21 09:42:27
    Temat: Re: circle midpoint + windowing, reverse, REAKTYWACJA
    Od: firr <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu czwartek, 15 października 2015 11:29:39 UTC+2 użytkownik Radoslaw Jocz
    napisał:
    > > Ps na grupie zagranicznej (comp.lang.c) padla idea rysowanie tego inaczej - tj
    wogole nie midpointem - cos w stylu logo
    > > - bierzesz punk startowy liczysz styczną
    > > ( a sytyczna do promienia to cos w stylu
    > > {tx, ty} = {-ry, rx} ) i idziesz po prostu piksel do przodu - trzebaby to
    przemyslec
    > > ale jest to ogolnie dobra idea, nie ma tych wiadomych problemow na jakie cierpi
    midpoint bo jest 'direction-agnostic' - w przypadku malych lukow to moze sie oplacac)
    >
    > midpoint jest OK jest szybki w 100 i dokladny w 100 tylko trzeba go dobrze
    zainicjowac i zrobic walidacje parametrow poczatkowych oraz dbac o to aby nie bylo
    przepelnien

    tak czy owak to z zolwiem wydaje mi sie ciekawa metoda ale nie mam sily w tym teraz
    podlubac mam wazniejsze sprawy na glowie

    co do wyjasnien algorytmow to chwile zastanowailem sie jak wyjasnic zwyklego
    bressenhama, nie mam czasu sie wczytywac
    w tego klasycznego bressenhama

    ale wychodziloby na to ze jesli np
    ma byc narysowana linia o dx = 100 , dy=37
    to w kazdym x++ do zmiennek kontrolney y
    (mozn anazwac d) dodaje sie 37/100
    i sprawdza czy przekroczylo 1.0 jesli tak
    to y++ a zmiena kontrolna -1.0, tyle ze
    aby uniknac ulamkow mozna dodawac samo 37 i sprawdzac z 100


    dx= 100;
    dy = 37;

    for(;;)
    {
    x++;
    d +=37; if (d>=100) y++, d-=100;
    }

    ot i wielka tajemnica raczej slamazarnego algorytmu (setki branchów), sam rysuje
    linie na fixedpointach, kiedys mierzylem roznice
    w wydajnosci ale nie pamietam (wersja na fixedpointach jednak raczej lepiej rokuje)
    nie mam sily sprawdzac [mozna tez pomyslec
    rozwinieta zoptymalizowana wersje

    for(j=0; j<m; i++)
    {
    for(i=0; i<nx; i++ ) x++;
    y++;
    }

    gdzie m i nx sa wziete z tablei dla
    roznych popularnych slopów 1/1, 1/2, 2/3, 1/3, 1/4, 3/4, 1/5... itd

    trzebabbedzie kiedys sprawdzic, szybkie linie sa dosyc wazne tak naprawde

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: