dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

taisnes v-ums
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> Matemātika un fizika
View previous topic :: View next topic  
Author Message
s1
Guest





PostPosted: Mon Jun 13, 2005 1:54 pm    Post subject: taisnes v-ums

pēc kādas formulas var noteikt taisnes v-umu?
Back to top
anggelus



Joined: 23 Feb 2005
Posts: 383
Location: Rīga (LV)

PostPosted: Mon Jun 13, 2005 2:16 pm    Post subject:

v-ums ir domāts garums vai kas?
_________________
No comprendo lo que dice.
Back to top
View user's profile Send e-mail
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Mon Jun 13, 2005 5:06 pm    Post subject:

Vienādojumu?
Nu tas atkarīgs, kas tev dots un kādā formā jādabū vienādojums. Ja tev doti divi punkti uz taisnes un vdj gribi parametriskā formā, tad:
Code:
y=y1+a*t
x=x1+b*t

kur
Code:
a=y2-y1
b=y2-y1
t=0..1

Tb (x1,y1) ir sākumpunkts un (a,b) vektors uz otro punktu.
Back to top
View user's profile Send e-mail
s1
Guest





PostPosted: Mon Jun 13, 2005 7:16 pm    Post subject:


kā lai to "?" lielumu aprēķuna?
Back to top
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Mon Jun 13, 2005 7:24 pm    Post subject:

Izsakies tak precīzāk! Un pasaki dotos lielumus! A citādi tev bildē visi lielumi saucās vienādi (x un y). Ja "?" ir taisnes viduspunkts, tad
Code:
Xvidus=(x1+x2)/2
Yvidus=(y1+y2)/2

Bet ja zināma y koordināte un abi tie galapunkti, tad x koordināti var dabūt šādi:
Code:
x = x1 + y*(x2-x1)/(y2-y1)

(uzmanīgi gadījumā, ja taisne ir horizontāla, tad nezinu kādu x koordināti tev vajag, vienādojums nedos pareizu atbildi vispār, jo dalīt ar 0 nevar)
Back to top
View user's profile Send e-mail
s1
Guest





PostPosted: Mon Jun 13, 2005 7:58 pm    Post subject:

paldies bubu, tu esi īsts matemātikas pavēlnieks Smile Tev vajadzētu kļūt par šīs sadaļas moderatoru.
Back to top
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Mon Jun 13, 2005 9:16 pm    Post subject:

Moška atklāsi, ko vispār vēlējies sākumā uzzināt, a to citādi vienalga melna bilde palikusi par to, ko tu gribēji uzzināt.
Back to top
View user's profile Send e-mail
s1
Guest





PostPosted: Wed Jun 15, 2005 3:58 pm    Post subject:

Viss ir OK, ar tavu sniegto info es spēju novērst problēmu, velreiz paldies.
Back to top
ra001
Site Admin
Site Admin


Joined: 20 Jan 2003
Posts: 452
Location: Latvija

PostPosted: Sun Mar 12, 2006 12:37 pm    Post subject:

Sorre, ka iejaucos tik vecā topikā, bet es te pusdienu pavadīju risinot 6 klases ģeometrijas uzdevumu, ka man vajdzēja kaut kur pierakstīt.
Tātād pilns taisnes vienādojums būs šāds

Code:

X = X1 + ((Y - Y1) * (X2 - X1)) / (Y2 - Y1)


Vienīgais vēl jāizdomā kā to pierakstīt, ja y nulles punkts ir augšā...
Back to top
View user's profile Send e-mail Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Sun Mar 12, 2006 1:17 pm    Post subject:

Tad bieži vien taisni pieraksta A*x + B*y + C = 0 formā. Ar šo formu ērtāk arī operēt, ja vajag noteikt visādas sadursmes ar citām taisnēm/plaknēm/objektiem.
Vai arī ar virziena vektoru (vx,vy) - pasasti normalizēts, un sākumpunktu (px, py). Tad vienādojums ir
Code:
x = px + vx*t
y = py + vy*t

Kur t mainās no -bezgalības līdz +bezgalībai. Tad nav nekādu problēmu ar to, ka vy=0.
Back to top
View user's profile Send e-mail
Muntis



Joined: 04 Feb 2006
Posts: 23
Location: Riga

PostPosted: Thu Apr 20, 2006 4:11 pm    Post subject:

Bet ja gribi paziimeet taisni, bet neveelies liekus punktus reekjinaat, diskreetaa matemaatika Tev paliidzees aatraak risinaat sho probleemu:

Piemeeram:
Code:

    public void lineSimple(int x0, int y0, int x1, int y1, Color color)
    {
        int pix = color.getRGB();
        int dx = x1 - x0;
        int dy = y1 - y0;

        raster.setPixel(pix, x0, y0);
        if (dx != 0) {
            float m = (float) dy / (float) dx;
            float b = y0 - m*x0;
            dx = (x1 > x0) ? 1 : -1;
            while (x0 != x1) {
                x0 += dx;
                y0 = Math.round(m*x0 + b);
                raster.setPixel(pix, x0, y0);
            }
        }
    }

Shis variants ziimee tikai vienu pikseli kolonaa taa kaa ja dY > dX mainam kordinaatas vietaam lai nebuutu paartraukumi

Lasi taalaak: http://www.cs.unc.edu/~mcmillan/comp136/Lecture6/Lines.html
Back to top
View user's profile Send e-mail Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Thu Apr 20, 2006 6:02 pm    Post subject:

Kāda tur vēl diskrētā matemātika, ja izmanto floatus?
Ja gribēji uzzīmēt taisni tikai izmantojot veselus skaitļus aprēķinos, tad dabiski, ka jālieto Bresenham algoritms: http://en.wikipedia.org/wiki/Bresenham's_line_algorithm

Kautgan ļoti šaubos vai kādam vajag zīmēt tainses pa pikseļiem. Lielumlielais vairums grafisko API paši jau to piedavā. Ja nu vienīgi pats tādu kodē...
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: Sat Aug 12, 2006 10:53 am    Post subject:

emmm.... derētu zināt kā lai aprēķina C punktam y koord Embarassed
Back to top
View user's profile Send e-mail
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Sat Aug 12, 2006 11:00 am    Post subject:

nja.. skolā matemātiku sliki mācījāmies? :)
Ja taise nav vertikāla:
y = k*x + m

ay = k*ax + m
by = k*bx + m
ay-by = (ax-bx)*k
k = (ay-by)/(ax-bx) - var izrēķināt
ay = k*ax + m
m = ay-k*ax - var izrēķināt

cy = k*cx + m - var izrēķināt

Ja taisne ir vertikāla (ax=bx), tad cy nav iespējams izrēķināt.
Back to top
View user's profile Send e-mail
S1
Indago dalībnieks
Indago dalībnieks


Joined: 31 Jul 2005
Posts: 219
Location: Jelgava

PostPosted: Sun Aug 13, 2006 10:31 am    Post subject:

bubu wrote:
nja.. skolā matemātiku sliki mācījāmies? Smile

tā vien izskatās, ka mans domāšanas aparāts nav piemērots matemātiskajām instrukcijām Laughing
paldies par aprēķiniem!
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> Matemātika un fizika All times are GMT + 2 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group