חישוב גודל של אלמנט בתוך מרחב.

  • פותח הנושא mat
  • פורסם בתאריך

mat

------- Magicode -------
יש לי משטח שגודלו יכול להשתנות.

עכשיו אני רוצה להכניס בתוכו מספר משתנה של ריבועים ביחס 1:1.

עכשיו אני רוצה לחשב את הגודל המקסימלי של כל ריבוע כדי שאני יוכל להכניס את כולם במשטח בלי לחרוג מגבולות המשטח ושכל הריבועים באותו גודל.

יש לכם רעיון איך לחשב?
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
נכתב ע"י mat;1463764:
יש לי משטח שגודלו יכול להשתנות.

עכשיו אני רוצה להכניס בתוכו מספר משתנה של ריבועים ביחס 1:1.

עכשיו אני רוצה לחשב את הגודל המקסימלי של כל ריבוע כדי שאני יוכל להכניס את כולם במשטח בלי לחרוג מגבולות המשטח ושכל הריבועים באותו גודל.

יש לכם רעיון איך לחשב?
אני מניח שהמשטח הוא מלבני. אם כן צורת החישוב היא כדלהלן:
נאמר שהאורך של המשטח הוא X, ורוחב - Y.
הגודל של הרבוע יהיה Y/N, כאשר N זה מספר הרבועים ברוחב השטח.
מתחילים מ N=1, ועולים במידת הצורך.
בודקים האם X מתחלק ל Y/N (כלומר X/(Y/n) זה מספר שלם)
אם כן - הגענו לתוצאה.
 

mat

------- Magicode -------
נכתב ע"י s976;1463795:
אני מניח שהמשטח הוא מלבני. אם כן צורת החישוב היא כדלהלן:
נאמר שהאורך של המשטח הוא X, ורוחב - Y.
הגודל של הרבוע יהיה Y/N, כאשר N זה מספר הרבועים ברוחב השטח.
מתחילים מ N=1, ועולים במידת הצורך.
בודקים האם X מתחלק ל Y/N (כלומר X/(Y/n) זה מספר שלם)
אם כן - הגענו לתוצאה.

החישוב שהבאת זה חישוב גס. יהיה איטי במקרים של מספרים גדולים.


דוד מהפרום http://code.613m.org/. מצא לי את התשובה פה.
http://math.stackexchange.com/a/466248

עשיתי לזה גם דוגמא פה.
http://liveweave.com/y8bwZO

וזה הפונקציה ב js.

PHP:
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);
}
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
חה חה
הענין הוא לא בזה שזה גס, אלא מדובר במטרה אחרת....
היית צריך לחשב את גודל הרבוע, כאשר מספר הרבועים הוא נתון, ואז המשטח לא מתכסה במלואו
אני חשבתי שאתה רוצה לכסות את כל המשטח ברבועים בלי להשאיר מקום כלל (לדעתי זה הרבה יותר טוב, כי למה להשאיר מקום ריק. סתם )
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק טו

א מִזְמוֹר לְדָוִד יְהוָֹה מִי יָגוּר בְּאָהֳלֶךָ מִי יִשְׁכֹּן בְּהַר קָדְשֶׁךָ:ב הוֹלֵךְ תָּמִים וּפֹעֵל צֶדֶק וְדֹבֵר אֱמֶת בִּלְבָבוֹ:ג לֹא רָגַל עַל לְשֹׁנוֹ לֹא עָשָׂה לְרֵעֵהוּ רָעָה וְחֶרְפָּה לֹא נָשָׂא עַל קְרֹבוֹ:ד נִבְזֶה בְּעֵינָיו נִמְאָס וְאֶת יִרְאֵי יְהוָה יְכַבֵּד נִשְׁבַּע לְהָרַע וְלֹא יָמִר:ה כַּסְפּוֹ לֹא נָתַן בְּנֶשֶׁךְ וְשֹׁחַד עַל נָקִי לֹא לָקָח עֹשֵׂה אֵלֶּה לֹא יִמּוֹט לְעוֹלָם:
נקרא  27  פעמים

אתגר AI

האנשה • 2

לוח מודעות

למעלה