חישוב גודל של אלמנט בתוך מרחב.
-
יש לי משטח שגודלו יכול להשתנות.
עכשיו אני רוצה להכניס בתוכו מספר משתנה של ריבועים ביחס 1:1.
עכשיו אני רוצה לחשב את הגודל המקסימלי של כל ריבוע כדי שאני יוכל להכניס את כולם במשטח בלי לחרוג מגבולות המשטח ושכל הריבועים באותו גודל.
יש לכם רעיון איך לחשב?
פורסם במקור בפורום CODE613 ב15/12/2014 15:43 (+02:00)
-
אינני מצליח להבין כלום.
יש לי משטח שגודלו יכול להשתנות.
"יכול להשתנות" זה אומר אתה יכול לשנות אותו, ואתה קובע את הגודל, או שהוא עלול להשתנות ללא שליטה שלך??
עכשיו אני רוצה להכניס בתוכו מספר משתנה של ריבועים ביחס 1:1.
מה הפירוש מספר משתנה??? מי מחליט על המספר הזה אתה או מישהו אחר??? אתה רוצה לקבוע שרירותית כל מספר??
עכשיו אני רוצה לחשב את הגודל המקסימלי של כל ריבוע כדי שאני יוכל להכניס את כולם במשטח בלי לחרוג מגבולות המשטח ושכל הריבועים באותו גודל.
מרובע בתוך מרובע המינימום זה ארבע מרובעים בתוך המרובע הגדול (בהנחה שאתה יכול לשנות, אתה יכול גם לעשות מלבן שיכיל 2 ריבועים), כך שזה מאוד פשוט לחישוב, אז לא ממש הבנתי, נא להסביר בעברית.
פורסם במקור בפורום CODE613 ב15/12/2014 16:01 (+02:00)
-
זה לא משנה מי משנה את הגדלים והכמויות. בתאכלס אני צריך לחשב כל מספר שגדול מ0.
מרובע בתוך מרובע המינימום זה ארבע מרובעים בתוך המרובע הגדול (בהנחה שאתה יכול לשנות, אתה יכול גם לעשות מלבן שיכיל 2 ריבועים), כך שזה מאוד פשוט לחישוב, אז לא ממש הבנתי, נא להסביר בעברית.
פורסם במקור בפורום CODE613 ב15/12/2014 16:19 (+02:00)
-
דוד מצא לי את התשובה פה.
http://math.stackexchange.com/a/466248ועשיתי דוגמא לעניין הזה פה.
http://liveweave.com/zzk2wRזה הפונקציה.
function calculateSquareSizeInArea(widthArea ,heightArea, countSquare ){ var x=widthArea, y=heightArea, n=countSquare; var px=Math.ceil(Math.sqrt(n*x/y)); var sx,sy; if(Math.floor(px*y/x)*px<n) //does not fit, y/(x/px)=px*y/x sx = y/Math.ceil(px*y/x); else sx = x/px; var py= Math.ceil(Math.sqrt(n*y/x)); if(Math.floor(py*x/y)*py<n) //does not fit sy=x/Math.ceil(x*py/y); else sy=y/py; return Math.max(sx,sy); }
פורסם במקור בפורום CODE613 ב15/12/2014 19:12 (+02:00)