פורסם 2006 בינואר 1219 שנים מה היא השיטה לחישוב של חיטוך של שני קטעים ע''י דטרמיננטה?שמעתי שיש פתרון הרבה יותר פשוט מהפטרון הרגיל והמסובח, בעזרת וקטורים.תודה מראש
פורסם 2006 בינואר 1219 שנים כן אז זה נשמע מסובך אבל זה לא נתחיל :יש לנו שתי פונקציות קויותax1+by1=cdx2+ey2=f((x=((c*e)-(f*b))/((a*e)-(d*b((y=((a*f)-(d*c))/((a*e)-(d*bוזה הכל אתה תקבל את נקודת החיטוך של שתי הפונקציות
פורסם 2006 בינואר 1319 שנים מחבר זאת היא נוסחה לשתי קוים, האמת היא שהתכוונתי לשתי קטעים, המוגבלים עם נקודות בקצוות, לדוגמה קטעים (1,1-5,5) ו- (1,5-2,4) לא יחתכו אחד את השני (אפילו שקוים יחתכו אחד את השני)
פורסם 2006 בינואר 1319 שנים מחבר אתה יכול להביא לי בבקשה דוגמת הפונקציה המקבלת 4 קואורדינתות של שני קוים שמחזירה האם הם נחתכים או לא? (T\F) עשיתי את זה בעבר, וצאה לי פונקציה קצת ארוכה, לכן שאלתי האם יש למישהו רעיון איך פותרים את זה בעזרת דטרמיננטה, עד כמה שנודע לי זהו פתרון הרבה יותר יפה ופחות מסובח.
פורסם 2006 בינואר 1319 שנים function dot (x1,y1,x2,y2,x3,y3,x4,y4):boolean;var m1,m2:real; a,b,c,d,e,f:real; x,y:real;begin m1:=(y1-y2)/(x1-x2); m2:=(y3-y4)/(x3-x4); a:=(-1)*m1; b:=1; c:=((-1)*m1*x1)+y1; d:=(-1)*m2; e:=1; f:=((-1)*m2*x3)+y3); x=((c*e)-(f*b))/((a*e)-(d*b)) y=((a*f)-(d*c))/((a*e)-(d*b)) dot:=true; if (x1>x2)then begin if((x>x1)or(x<x2))then dot:=false; end; else begin if((x<x1)or(x>x2))then dot:=false; end; if (y1>y2)then begin if((y>y1)or(y<y2))then dot:=false; end; else begin if((y<y1)or(y>y2))then dot:=false; end; if (x3>x4)then begin if((x>x3)or(x<x4))then dot:=false; end; else begin if((x<x3)or(x>x4))then dot:=false; end; if (y3>y4)then begin if((y>y3)or(y<y4))then dot:=false; end; else begin if((y<y3)or(y>y4))then dot:=false; end;end;זה ניראה מפחיד וארוך אבל זה רק ביגלל הבדיקה של האים הנקודה שנימצא היא באמת על אחד הקטעים אשמח לקבל הערות על שיפור הבדיקה תודה
פורסם 2006 בינואר 1319 שנים מחבר מהשהו דומה יצאה גם לי עכשיו אתה מבין למה שאלתי האם מישהו יודע לעשות זאת בעזרת דטרמיננטה? זה יכול להכליף את כל הבלגן בכמה שורות בודדות, טוב אנסה לחפש משהו באינטרנט...
פורסם 2006 בינואר 1319 שנים חשבתי על דרך יותר טובה לחשב את המרחק של הנקודה שנימצאה מכל קצה קטע וגם את אורך הקטע כולו אם הם שווים אז היא על הקטעכלומר :שסכום הכחולים יהיה שווה לאדום אדום:הקטע המבוקששחור: הנקודה שנימצאה כחול:המרחק מתחילת הקטע את תצתרך שאני ארשום תוכנית תבקש[attachment deleted by admin]
פורסם 2006 בינואר 1419 שנים מחבר הצלחתי, הינה הפונקציה העקרית bool intersaction(int ax, int ay, int bx, int by, int cx, int cy, int dx, int dy){ bx -=ax; by -=ay; cx -=ax; cy -=ay; dx -=ax; dy -=ay; ax = 0; ay = 0; if(sign(bx*cx - by*cy)==sign(bx*dx - by*dy)) return (false); else return (true);} הינה הפונקציה השניה, חשבתי שיש פונקציה מובנית בתוך הספריה המטמטית, אבל לא מצאתי. אני מתכוון לפונ' sign במחשבון bool sign(const int num){ if(num>0) return(true); else return(false);} הפונקציה הראשונה מקבלת את שמונת הקואורדינטות של שני קטעים, ומחזירה TRUE אם הם נחתכים. הרעיון אכן היה בעזרת דטרמיננטה של 4 וקטורים, אם הינך מעוניין לשמוע את הרעיון אשמך לספר.
פורסם 2006 בינואר 1419 שנים אם תוכל להסביר לי מה עשיתה כי לא כל כך הבנתי מדוע דטרמיננטה של הוקטורים בצורה הזו עונה על התשובה נ.ב עשיתי ניסוי קטן וזה אכן עובד אז למה?
פורסם 2006 בינואר 1419 שנים מחבר הקטע הוא שכאשר הסימנים של דטרמיננטות של משולשים ACB ו-ADB הם שונים (אחד שלילי והשני חיובי) אז הקוים נחתכים, אחרת (שתיהם שליליים או חיוביים) - לא. כאשר שיחקתי עם דטרמיננטות, שמתי לב לדבר אחד, כאשר השפיץ של המשולש (קודקוד C במשולש ACB) למעלה הדטרמיננטה של C ו-B היא שלילית, כאשר היא חיובית - הקודקוד למעטה. כמו כן אנו יודעים שהוקטורים (AB ו- AC ) יוצאים מנקודה (0,0), לכן אני מאפס את קואורדינטות של אחת הנקודות (במקרה שלי את A) ובהתאם משנה את שאר הנקודות (מחסיר את הערך של A)[attachment deleted by admin]
פורסם 2006 בינואר 1519 שנים מחבר עם זה יש בעיה קטנה, צריך להכיר את אלגברה לינארית את הנוסה של וקטורים, ואת הנושא הזה רק התחלתי ללמוד :-\
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.