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

  • פותח הנושא mat
  • פורסם בתאריך
  • הוסף לסימניות
  • #1
יש לי משטח שגודלו יכול להשתנות.

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

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

יש לכם רעיון איך לחשב?
 
  • הוסף לסימניות
  • #2
נכתב ע"י mat;1463764:
יש לי משטח שגודלו יכול להשתנות.

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

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

יש לכם רעיון איך לחשב?
אני מניח שהמשטח הוא מלבני. אם כן צורת החישוב היא כדלהלן:
נאמר שהאורך של המשטח הוא X, ורוחב - Y.
הגודל של הרבוע יהיה Y/N, כאשר N זה מספר הרבועים ברוחב השטח.
מתחילים מ N=1, ועולים במידת הצורך.
בודקים האם X מתחלק ל Y/N (כלומר X/(Y/n) זה מספר שלם)
אם כן - הגענו לתוצאה.
 
  • הוסף לסימניות
  • #3
נכתב ע"י 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);
}
 
  • הוסף לסימניות
  • #4
חה חה
הענין הוא לא בזה שזה גס, אלא מדובר במטרה אחרת....
היית צריך לחשב את גודל הרבוע, כאשר מספר הרבועים הוא נתון, ואז המשטח לא מתכסה במלואו
אני חשבתי שאתה רוצה לכסות את כל המשטח ברבועים בלי להשאיר מקום כלל (לדעתי זה הרבה יותר טוב, כי למה להשאיר מקום ריק. סתם )
 

פרוגבוט

תוכן שיווקי
פרסומת

פוסטים חדשים שאולי לא קראת....

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

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


תהילים פרק כה

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