דעתכם בנושא פרוייקט שעשיתי - פרקטל שטיח סירפינצקי
מנהלים: kabanist, Sir Psycho Sexy
-
- Moderator
- הודעות: 2410
- הצטרף: 03/9/2001 , 2:00
- מיקום: עמק חפר (ח.צ)
- אמר/ה תודה: 0
- קיבל תודה: 0
- יצירת קשר:
דעתכם בנושא פרוייקט שעשיתי - פרקטל שטיח סירפינצקי
כשיעורים קיבלתי פרוייקט סוף סימסטר באסמבלי לממש את שטיח סרפינצקי (זה פרקטל פשוט בעל מימד 1.89 ... אם הנושא מעניין מישהו http://en.wikipedia.org/wiki/Sierpinski_carpet - רק ששם הקוד הוא בJava שלא דומה לצערי אפילו קצת לאסמבלי)
בכל אופן בגלל אופי הפרקטל קצב הגידול שלו הוא חזקת 3 - וכך נוצר מצב מעיק קצת שאם אני משתמש בכמות אינטרבלים כדי שכל הפרקטל יכנס למסך DOS (אין מה לעשות עוד תכונה של תכנות אסמבלי) אני מקבל פרקטל קטן - אבל רואים את כולו ואת התכונות שלו.
אם אני משתמש באינטרבל אחד יותר מהמקסימלי למסך אני מקבל פרקטל הרבה יותר מרשים אבל רואים ממנו כמות קטנה מידי כך שיתכן שאי אפשר לראות כלל שמדובר בפרקטל...
לכן צירפתי קישורים לשתי התוכניות - ורציתי לשמוע את חוות דעתכם מי מהם הייתם מגישים (אפשר רק אחד להגיש) זה שרואים בו את כל הפרקטל אך הוא לא מרשים - או זה שרואים רק חלק מהפרקטל אך החלק מאוד מרשים אבל ידרשו ממני הסברים (יותר נכון הוכחות) מדוע עדיין אני מקבל פרקטל שלם למרות שרואים רק חלק ממנו.
פרקטל שלם
פרקטל חלקי
יש להמתין כמה שניות ואז מופיע כפתור "הורדה" מצד ימין של המסך (בחלק העליון שלו)
מכיוון שמדובר בתוכנות DOS יתכן שלא כל מחשב יצליח להריץ אותם (ואז יש לרשום בrun את הפקודה cmd ולהריץ שם)
תודה
seeker of rain
בכל אופן בגלל אופי הפרקטל קצב הגידול שלו הוא חזקת 3 - וכך נוצר מצב מעיק קצת שאם אני משתמש בכמות אינטרבלים כדי שכל הפרקטל יכנס למסך DOS (אין מה לעשות עוד תכונה של תכנות אסמבלי) אני מקבל פרקטל קטן - אבל רואים את כולו ואת התכונות שלו.
אם אני משתמש באינטרבל אחד יותר מהמקסימלי למסך אני מקבל פרקטל הרבה יותר מרשים אבל רואים ממנו כמות קטנה מידי כך שיתכן שאי אפשר לראות כלל שמדובר בפרקטל...
לכן צירפתי קישורים לשתי התוכניות - ורציתי לשמוע את חוות דעתכם מי מהם הייתם מגישים (אפשר רק אחד להגיש) זה שרואים בו את כל הפרקטל אך הוא לא מרשים - או זה שרואים רק חלק מהפרקטל אך החלק מאוד מרשים אבל ידרשו ממני הסברים (יותר נכון הוכחות) מדוע עדיין אני מקבל פרקטל שלם למרות שרואים רק חלק ממנו.
פרקטל שלם
פרקטל חלקי
יש להמתין כמה שניות ואז מופיע כפתור "הורדה" מצד ימין של המסך (בחלק העליון שלו)
מכיוון שמדובר בתוכנות DOS יתכן שלא כל מחשב יצליח להריץ אותם (ואז יש לרשום בrun את הפקודה cmd ולהריץ שם)
תודה
seeker of rain
-
- Rising Scrub
- הודעות: 1869
- הצטרף: 13/11/2004 , 18:00
- מיקום: בית שמש
- אמר/ה תודה: 0
- קיבל תודה: 0
- יצירת קשר:
האחד הגדול יותר טוב.
גם הכוחות זה טוב. (אני מניח שזה דברים מסובכים נכון?)
גם הכוחות זה טוב. (אני מניח שזה דברים מסובכים נכון?)
Y כתב:אנשים לא יודעים להבדיל בין איכות לזבל ומבחינתם יהודה לוי לבוש בירוק ו-Llanowar Elves זה אותו הדבר.
-
- Moderator
- הודעות: 2410
- הצטרף: 03/9/2001 , 2:00
- מיקום: עמק חפר (ח.צ)
- אמר/ה תודה: 0
- קיבל תודה: 0
- יצירת קשר:
-
- Moderator
- הודעות: 2410
- הצטרף: 03/9/2001 , 2:00
- מיקום: עמק חפר (ח.צ)
- אמר/ה תודה: 0
- קיבל תודה: 0
- יצירת קשר:
-
- Moderator
- הודעות: 2410
- הצטרף: 03/9/2001 , 2:00
- מיקום: עמק חפר (ח.צ)
- אמר/ה תודה: 0
- קיבל תודה: 0
- יצירת קשר:
Re: דעתכם בנושא פרוייקט שעשיתי - פרקטל שטיח סירפינצקי
Seeker Of Rain כתב:בכל אופן בגלל אופי הפרקטל קצב הגידול שלו הוא חזקת 3 - וכך נוצר מצב מעיק קצת שאם אני משתמש בכמות אינטרבלים כדי שכל הפרקטל יכנס למסך DOS (אין מה לעשות עוד תכונה של תכנות אסמבלי) אני מקבל פרקטל קטן - אבל רואים את כולו ואת התכונות שלו.
That's because your using VGA.
If you use Super VGA you can use 800x600,1024x768,etc.
I changed your program test_4.exe to use 1024x768.
You can see it here
http://geocities.com/tacolmtg/768.zip
It also works slowly, but this can be fixed,
there is a problem with using a screen over 64k and i used
a simple a solution instead of a good one.
It also draws more then the box you wanted. 768 pixels.
Are you required to optimize the code too?
For example here
push,pop is not doing anything, since you don't read ax latter anyway
Can also use a shl ax,1 instead of the first add.
And use xor reg,reg instead of mov reg,0
There are a lot of tricks in asm.
I also saw you used
To make sure cx and dx didn't get modifed elsewhere.
But when you "Write a dot on the screen" you don't make sure bh==0.
How come?
If you use Super VGA you can use 800x600,1024x768,etc.
I changed your program test_4.exe to use 1024x768.
You can see it here
http://geocities.com/tacolmtg/768.zip
It also works slowly, but this can be fixed,
there is a problem with using a screen over 64k and i used
a simple a solution instead of a good one.
It also draws more then the box you wanted. 768 pixels.
Are you required to optimize the code too?
For example here
קוד: בחירת הכל
push ax
mov ax, word_100EC
add word_100EC, ax
add word_100EC, ax
pop ax
Can also use a shl ax,1 instead of the first add.
And use xor reg,reg instead of mov reg,0
There are a lot of tricks in asm.
I also saw you used
קוד: בחירת הכל
mov cx, word_100E2
mov dx, word_100E4
But when you "Write a dot on the screen" you don't make sure bh==0.
How come?
-
- Moderator
- הודעות: 2410
- הצטרף: 03/9/2001 , 2:00
- מיקום: עמק חפר (ח.צ)
- אמר/ה תודה: 0
- קיבל תודה: 0
- יצירת קשר:
Seeker Of Rain כתב: לגבי bh לא היה צורך לבדוק את זה, מכיוון שהוא אופס לפני הקריאה לפונקציה.
It doesen't get zeroed before the call.
The only place that changes bh is
mov bx, word_100EC
found inside the other function.
If the loop goes more then 6 times then bh will get changed and the
program won't display anything.
The only place that changes bh is
mov bx, word_100EC
found inside the other function.
If the loop goes more then 6 times then bh will get changed and the
program won't display anything.