Łączenie dwóch punktów linią

Łączenie dwóch punktów linią
BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 99
0

Witam,
Jak w asemblerze narysować linię łączącą dwa punkty w trybie 13h. Punkty nie leżą w tej samej linii więc linia ma być ukośna. Są jakieś procedury do tego czy trzeba wszytko liczyć?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

czy trzeba wszytko liczyć

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Punkty nie leżą w tej samej linii więc linia ma być ukośna.

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 99
0

A wiec w jaki sposób najszybciej taką linie narysować?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Co tak nagminnie powstrzymuje Cię od wpisania assembler draw line w Google?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

@Bohun wylicz funkcje liniową między tymi punktami i następnie rysuj f(x) dla każdego x pomiędzy tymi punktami

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 99
0

Tylko że te punkty mi się przemieszczają po okręgu tworząc kwadrat wiec dla każdego obrotu musiał bym wyliczać nowo funkcje

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

To oblicz raz a potem wykonuj przekształcenie wektorowe. Tzn przesuwaj każdy punkt o pewien wektor wynikający z obrotu.

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 99
0

Napisałem funkcje liniową ale coś źle mi liczy oto kod

Kopiuj
	line_5:
	add di,1
	
	mov ax,[pointX]
	add ax,1
	mov [pointX],ax
	
	mov ax,[pointX2]
	mov bx,[pointX1]
	sub ax,bx
	mov si,ax
	mov ax,[pointY2]
	mov bx,[pointY1]
	sub ax,bx
	cmp ax,0
	je b
	mov si,ax
	mov ax,[pointX]
	sub ax,[pointX1]
	mul si
	b:
	add ax,[pointY2]
	mov [pointY],ax
	
	; zapal pixel
	mov    ax,0a000h  			 
    mov    es,ax
    mov    ax,[pointY]
    mov    bx,320
    mul    bx    				 
    add    ax,[pointX]  	     
    mov    bx,ax
    mov    al,4
    mov    byte [es:bx],al 
	
	cmp di,42
	jne line_5

Co jest źle?

bajos
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: UwUdź
  • Postów: 267
0

http://pl.wikipedia.org/wiki/Algorytm_Bresenhama Na Googe są implementacje w różnych jęęzykach.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.