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

Dots: taisnl.triist; visi 3 vektori. Jaaprekina lenkji.
Goto page Previous  1, 2
 
dev.gamez.lv Forum Index -> Matemātika un fizika
View previous topic :: View next topic  
Author Message
Kjirbis



Joined: 22 May 2005
Posts: 20
Location: Liepaja

PostPosted: Wed Nov 22, 2006 6:50 pm    Post subject:

neprecīzi uzrakstīju. garums tiem ir = 1. varbūt vajadzēja apzīmēt par līnijām.
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Wed Nov 22, 2006 9:58 pm    Post subject:

Nesapratu... kam garums ir 1? Kas par līnijām?

Vektors plaknē - tas ir divdimensionāls lielums. To apraksta vai nu ar leņķi UN garumu, vai arī ar (x,y) pārīti. Nevis ar vienu lielumu.

Kas īsti tev par to trijstūri zināms? Tā arī man nav skaidrāk palicis...
Back to top
View user's profile Send e-mail
Kjirbis



Joined: 22 May 2005
Posts: 20
Location: Liepaja

PostPosted: Sat Nov 25, 2006 3:13 pm    Post subject:

mnu varbūt ar ActionScript kodu viss kļūs skaidrs:

Code:

function line(x1, y1, x2, y2)
{
   l = new Object();
   l.x1 = x1; l.y1 = y1;
   l.x2 = x2; l.y2 = y2;
   return l;
}

function point(x, y)
{
   var p = new Object();
   p.x = x;
   p.y = y;
   return p;
}

function vector_length(p)
{
   return p.x*p.x + p.y*p.y;
}
function normalize_vector(p)
{
   var len = Math.sqrt(vector_length(p));
   p.x /= len;
   p.y /= len;
}

function calc_line(l)
{
   l.x = l.x2 - l.x1;  // shiten (l.x, ly) ir nenormalizets linijas vektors
   l.y = l.y2 - l.y1;
   l.len = Math.sqrt(vector_length(l));   
   if (l.x != 0) {   // precalculacijas prieksh liniju krustpunkta atrashanas
      l.dy = l.y / l.x;
      l.y0 = l.y1 - l.dy * l.x1;
   }
   else {
      l.dy = 0;
      l.y0 = 0;
   }
}

function intersect(l1, l2)
{
   var dy = (l1.dy - l2.dy);
   if (dy == 0) return null;
   var xi = (l2.y0 - l1.y0) / dy;
   var yi = l1.y0 + xi * l1.dy;
   if (((l1.x1-xi)*(xi-l1.x2)>=0) &&
      ((l2.x1-xi)*(xi-l2.x2)>=0) &&
      ((l1.y1-yi)*(yi-l1.y2)>=0) &&
      ((l2.y1-yi)*(yi-l2.y2)>=0)) {
      return point(xi, yi);
   }
   return null;
}

this.onEnterFrame = function()   // frame loops
{
   ....

   var p = intersect(l1, l2);
   if (p) {
      mycr = draw_circle(p.x, p.y, 6); // rinkis ap krustpunktu, radiuss = 6
      var a = point(l1.x, l1.y);  // njemam abas linijas
      var b = point(l2.x, l2.y);
      normalize_vector(a);
      normalize_vector(b);   

      // atrodam bisektrisi c saskaitot a un b vektorus
      var c = point(a.x+b.x, a.y+b.y);
      var rsum = l1.r + l2.r;    // nenjemam veraa sho vertibu,garums var but jebkaads
      var l3 = line(p.x, p.y, p.x-c.x*rsum, p.y-c.y*rsum);
      myln2 = draw_ln(l3, 0x008000);

      // atrodam bisektrises perpendikularo vektoru
      var xx = p.x-c.x*rsum;
      var yy = p.y-c.y*rsum;
      // var d = point(xx, yy);
      var l4 = line(xx, yy, xx+c.y*l2.r, yy-c.x*l2.r);
      myln3 = draw_ln(l4, 0x800000);
      
      /*
      tagad veelos veidot taisnlenka triistuuri, kur zinaams;

      hipotenuuza: a vai b, vajadzigo garumu nezinu ( =1, ja normalizee)
      shii hipotenuza sakas no krustpunkta uz linijas sakumpunkta virzienu.

      katete: bisektrise c, vajadzigo garumu nezinu

      katete: bisektrises perpendikuls d, garums ir zinaams, tas ir rinka radiuss kura
      kustibas linija(vektors) ir a vai b.

      paskatoties vizualizaciju, vajadzetu visam tapt skaidram.
      */
   }

         ...
}
Back to top
View user's profile Visit poster's website
Display posts from previous:   
dev.gamez.lv Forum Index -> Matemātika un fizika All times are GMT + 2 Hours
Goto page Previous  1, 2
Page 2 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