טכנולגית מעקב אישוןמילקה

אני מעונינת לכתוב תכנה שמשתמשת בטכנולוגיה של מעקב אישון

לא בדרך המסובכת והמורכבת שלו אלא רק לבדוק האם הבנ"א נמצא בפריים של המצלמה והאם העיניים  שלו פתוחות ולא עצומות

יש למישו מושג מאיפה משיגים/קונים ספריות מוכנות עם כאלו פונקציות או משהו אחר שיכול לקדם אותי בענין?

תודה רבה

באיזה סביבה?איזה_טוב_ה'_


opencvאנונימי (2)

חבילה שקיימת ב-Python ואני חושב שגם ב-c++ (אבל לא בטוח).
 

אם את כותבת שב-python, הייתי ממליץ לך להתקין אותה עם anconda - אחרת זה סיוט.

ולדעתי, הדרך הפשוטה ביותר היא לשתמש באלגוריתם hough לזיהוי מעגלים (יש דוגמאות מעולות בדוקומנטציה של החבילה באתר שלהם) ולחפש עיגול בתוך עיגול (הקשתית היא עיגול עם רוחב כך שאפשר לחפש את העיגול החיצוני והעיגול הפנימי) בגדלים הרצויים (תלוי במרחק של העדשה מהאובייקט וכו') בשיטה של ניסוי וטעייה.

מסתבר שאפשר להשתמש בה גם באמצעות:אנונימי (2)

java ו-c. (מלבד python ו-c++).

OpenCV library

עדיין אותו אנונמי... עוד אפשרות:אנונימי (2)


עוד אפשרות:אנונימי (2)

להוריד מודל מאומן של רשת נוירונים שמזהה פנים - אפשר למצוא כאלה ב-Github, כמו זה למשל:
GitHub - tornadomeet/mxnet-face: Using mxnet for face-related algorithm.

אבל זה דורש הרבה פעמים אפילו יותר עבודה מלכתוב קוד לבד.

וואו תודה אנונימי יקר!!!!מילקה

אני בשלב עשיית פרויקט הגמר

כך שהרבה מהאינפורמציה שנתת אני לא מבינה עד הסוף

אמורה להיות לי מנחה שתעזור לי ותלווה אותי

מה זה בדיוק הקישור שהבאת?

אופציה להורדת ספריה עם פונקציות שיכולות לעזור לי לזהות קיום של אישונים בפריים????

הבנתי נכון?

שוב תודה

בכיףאנונימי (2)

הקישור הראשון שהבאתי הוא קישור לדוקומנטציה של opencv. זו חבילה חינמית שכפי שכתבתי, יש לה ממשק עם python, java, c ו-c++.

 

זו חבילה של computer vision ויש בה המון פונקציות ושיטות לעיבוד תמונה וראיה ממוחשבת: זיהוי פינות, זיהוי קצוות, נגזרות, מסננים, resize, עקיבה אחרי אובייקטים, optic flow וכו'.

אחת מאותן שיטות היא אלגוריתם שנקרא hough שבאופן כללי, ניתן למצוא באמצעותו בתמונה קוים שמקיימים משוואה מסוימת (כמו משוואת ישר או משוואת מעגל - ככל שהמשוואה מסדר גבוה יותר, החישוב מסובך וארוך יותר, כך שלמיטב ידיעתי אין מימוש לפוקנציה מסדר שלישי ויש רק למשוואת מעגל - סדר שני - אבל זה אמור להספיק למטרה שלך עם כוונון של כמה פרמטרים נומריים שקיימים בקוד של האלגוריתם).

 

יצא לי להתקין את הספריה רק על מחשב עם מערכת הפעלה לינוקס ועבור python - אבל אם תחפשי בגוגל איך להתקין את החבילה על מערכת הפעלה אחרת עבור שפה אחרת שיש לחבילה ממשק איתה, אני בטוח שתמצאי הסברים מפורטים.

 

הקישור השני ששמתי הוא עבור מודל מאומן לזיהוי פנים.

למצוא אישונים בתמונה שבה יש פנים, זה די פשוט (שני עיגולים בעלי אותו מרכז בגדלים שונים). לדעת האם יש באדם בתמונה או לא - זה כבר יותר מורכב.

אנשים מאוד מוכשרים אימנו רשתות נוירונים על המון תמונות כך שאפשר לקחת תמונה כלשהי, להעביר אותה במודל והמודל יוכל לסווג את התמונה ל"האם יש פנים בתמונה" או לא. (יש עוד מודלים שאפשר למצוא ברשת).

 

כלומר, הזרימה צריכה להיות כך שקודם כל הקוד שלך יבדוק האם יש פנים בתמונה ולאחר מכן האם העיניים פתוחות או עצומות (אם הבנתי נכון).

החלק הראשון הוא החלק שצפוי להיות יותר בעייתי.

 

 

אוקיימילקה

קראתי מה שכתבת וגם חיפשתי קצת בעצמי

ממה שקראתי באתר של OPENCV יש שם אופציה של זיהוי פרצופים , יכול להיות שזה כזה פשוט?????

 

תודה רבה  (ואגב הבנת נכון לגבי הזרימה)

יכול להיותאנונימי (2)

אני זוכר שגם קראתי משהו על זה (אלגוריתם שמעביר סדרת פילטרים מסוימת על התמונה ומוציא ממנה מידע) - אבל אני באופן אישי לא עשיתי בזה שימוש.

 

opencv זה עולם שלם שאפשר לנבור בו במשך תקופה ארוכה למדי ולא להכיר את הכל. 

 

אגב, זה גם יכול לעבוד ב-realtime. אפשר לקחת סרטון ולפרוש אותו לפריימים ויש שם גם מימוש של 2 אלגוריתמים שנקראים mog ו-mog2 שיודעים להשוות בין הפריימים הקודם לפריים הנוכחי ולסמן שינויים שקרו ברצף. (אולי זה גם יוכל לעזור).

 

בהצלחה.

אני לא מבינהמילקה

openCV בבסיס מיועדת לניתוח תמונה סטטית????

הפונקציות של זיהוי הפרצופים לצורך הענין -פועלות על תמונה קיימת או על תמונה שמגיעה כל אלפפית השניה ממהמצלמה?????

תודה רבה

כל האלגוריתמים עובדים על תמונות סטטיות. מה זה וידאו?אנונימי (2)

רצף של תמונות סטטיות.

ישנם אלגוריתמים - כמו MOG שהזכרתי קודם - שמנתחים פריים בודד לפי פריימים קודמים כך שהם יכולים לזהות תנועה - אבל גם זה מבוצע באמצעות אלגוריתמים שפועלים על פריימים בודדים בבסיס האלגוריתם. (ואז האלגוריתם לוקח כל פריים, יוצר לו איזשהו מודל מתמטי שמתאר כל אזור בפריים, משקלל את זה עם המודלים שהתקבלו בפריימים אחרים ובודק אם אזור מסוים בפריים הנוכחי מקיים תנאי כלשהו או לא).

כל ניתוח וידאו פועל על ניתוח רצף של פריימים בודדים.

אין סתירה בין תמונה קיימת לבין תמונה שמתקבל כל אלפית שניה מהמצלמה. תמונה שהתקבלה לפני אלפית שניה מהמצלמה, היא תמונה קיימת.

אפשר ליצור אלגוריתמים על סרטונים בזמן אמת - ויש דוגמאות לזה ב-youtube. חפשי שם opencv ו-mog.

האלגוריתמים שפועלים על אותם סרטונים הם אלגוריתמים שפועלים בבסיס שלהם על תמונות בודדות.

ברור מילקה

אבל מי שכתב את הספריה הזאת תכנן שישתמשו בה בוידאו (רצף של תמונות סטטיות - אם תתעקש)

כלומר - דרך מקובלת להשתמש בספריה הזאת היא על רצף של תמונות סטטיות שמשודר ממצלמת אינטרנט לדוגמא???

אם כן (ואפילו אם זה דורש עבודה רבה ) מצוין , אני לא נרתעת

וסליחה אם אני שואלת שאלות מטומטמות

פשוט חסרת נסיון לחלוטין ואתם עוזרים לי מאדדדדדד

תודה רבה

אחד המרצים שלי היה נוהג לומר:אנונימי (2)אחרונה

"אין שאלות מטומטמות... יש רק אנשים מטומטמים..." (אל תעלבי, אני סתם צוחק וזה לא מכוון אלייך. זה סתם משפט ציני שהוא היה אומר לכל סטודנט שהתחיל את השאלה שלו במשפט: "אולי זו שאלה מטומטמת אבל...". בקיצור, נוסטלגיה...).

 

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

 

למשל, אין שום משמעות באלגוריתם MOG עלתמונה בודדת. האלגוריתם הזה מיועד לשימוש על רצף של תמונות.
מצד שני, כדי למצוא מעגלים או קווים ישרים בתמונה - יש להשתמש באלגוריתם שעובד על פריים בודד בכל פעם. (אלגוריתם hough, למשל).

 

 

אין "דרך מקובלת" להשתמש בה כמו שאין דרך מקובלת להשתמש בפטיש - אפשר לדפוק איתו מסמר, אפשר לשבור איתו קיר ואפשר להשתמש בו בתור משקולת - זה ארגז כלים מאוד מאוד משוכלל ונח וכל אחד יכול להשתמש בו כראות עיניו.

 

הדרך הנכונה לדעתי להשתמש בחבילה הזאת (או בכל חבילה אחרת של ראיה ממוחשבת) היא קודם כל להבין איזה אלגוריתמים הם "יקרים" מבחינה חישובית (שזה קריטי באלגוריתמים של real time), אילו אלגוריתמים "זולים", מה בדיוק רוצים לעשות, מהו המפרט והתנאים ההכרחיים שחייבים לעמוד בהם ואיך הכי יעיל לבצע את זה.

למשל, במקרה שלך, אלגוריתם MOG הוא אלגוריתם זול יותר מ-HOUGH ולכן שימוש ב-MOG עדיף כשאפשר וגם אלגוריתם לזיהוי פנים דורש לא מעט חישובים.
מה זה אומר? שאם בוידאו שאת עובדת עליו יש כמה פריימים רצופים שזיהית שאין בו פנים, עדיף להשתמש ב-MOG ולראות האם בפריים שאחריו יש שינוי משמעותי ממה שהופיע בו קודם. (למשל, הגדרת סף של מספר פיקסלים סמוכים שהשתנו).

אם את מזהה שאין שינוי, אז אין טעם לבדוק אם פתאום הופיעו שם פנים, ואפשר לעבור מיד לפריים הבא במהירות ובקלות.

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

 

אותו דבר בכיוון ההפוך - אם יש לך כמה פריימים שאת כבר יודעת שמופיעות בהם פנים, אז מספיק להריץ MOG כדי לדעת האם משהו השתנה והאם כדאי לעבור לאלגוריתמים יקרים יותר.

 

כמובן שיש כאן trade-off, כמו כל דבר בעולם ההנדסה.

אם אלגוריתם MOG זיהה שינוי, אז את בכל מקרה צריכה להריץ עכשיו אלגוריתם לזיהוי פנים - כלומר, הרצת MOG "סתם" וזה עלה לך בזמן.

השאלה היא מה יותר חשוב לך והאם את מוכנה לספוג פעם אחת ברצף של תמונות הרצת MOG מיותר בתמורה לזה שזה יחסוך לך הרצה של אלגוריתמים כבדים יותר במקרים אחרים.

 

בבעיה שאינה של real time, זמן החישוב הממוצע הוא שקובע ולא באמת אכפת לאף אחד כמה זמן עובד כל פריים.

בבעיה של real time, המצב שונה כיוון שיש זמן מקסימלי שמוכנים להשקיע בפריים ספציפי.

לכן, בבעיה של real time, בכל פריים את לא רוצה שיעבור יותר מפרק זמן קצר מאוד שאולי אלגוריתם של זיהוי פנים יעמוד בו אבל MOG ואז אלגוריתם של זיהוי פנים כבר לא יעמוד בו - ואז עדיף לך להעביר כל פריים ישירות במסווג של פנים\אין פנים בתמונה בלי להשתמש כלל ב-MOG. 

 

בקיצור, יש כאן המון שיקולים וכמובן שמהירות חישוב לרוב תבוא על חשבון דיוק וכו'.

 

יש עוד אפשרות שלא כוללת בכלל opencv - אבל היא דורשת ידע בתחומים של למידת מכונה בדגש על רשתות נוירונים ויכולת לכתוב אותן בצורה יעילה.

אני לא חושב שזה רלבנטי לפרוייקט גמר. (אולי לעבודת מחקר של מאסטר או חלק מעבודת מחקר של דוקטורט...).

 

Goggle Cloud Vision APIעוקר הרים
עבר עריכה על ידי עוקר הרים בתאריך ב' באב תשע"ז 22:58

Vision API - Image Content Analysis  |  Google Cloud Platform

לא יצא לי לבדוק, אבל יש שם טכנולוגית זיהוי פנים פשוטה יחסית.

התשובה שמתקבלת כוללת גם הרבה פרטים ונקודות ציון בפנים - 

Vision API - Image Content Analysis  |  Google Cloud Platformdocs/reference/rest/v1/images/annotate#Landmark

דוגמה פשוטה עבור עם rest api ומספר שפות תכנות - 

Detecting Faces  |  Google Cloud Vision API Documentation  |  Google Cloud Platform

עד אלף תמונות ביום זה חינם.

תודהמילקה

אבל אני מחפשת מערכת שתעבוד בזמן אמת

אם הבנתי נכון (ולא התעמקתי אז הגיוני מאד שלא) זה טכנולוגיה לזיהוי פנים בתמונה קיימת

לא בתמונה שמשודרת כרגע ממצלמה

נכון?

תלוי מה זה "זמן אמת"עוקר הרים

זה אכן יצריך אותך לשלוח את התמונה ל-google cloud ולא לעבד אותה מקומית.

זה מאוד מהיר, אבל זה כן יכול לקחת כמה מאות מילי שניות לשלוח את התמונה. בתמונות גדולות זה יצריך אותך לכווץ את התמונה.

אגב, אם המצלמה היא סלולארית, יש לגוגל גם API דומה לאנדרואיד.

עכשיו ראיתי שמדובר באלפיות שנייהעוקר הרים
עבר עריכה על ידי עוקר הרים בתאריך ה' באב תשע"ז 00:06

זה פחות רלוונטי מול ה-API של הענן, אבל כן מול ה-API שלהם לאנדרואיד.

מישהו יכול לבדוק את הקוד הזה? בפייתוןאדיר לוייי

זה צריך להיות לתוכנה שמתרגמת שמות קבצים ומסדרת אותם

נעשה עם gpt

לטענתה הכל מושלם ןיציב אבל רוצה לשמוע שזה עבד מושלם בפועל

זה הקוד:


import os

import json

import shutil

import re

from pathlib import Path

from PySide6.QtWidgets import (

   QApplication, QWidget, QVBoxLayout, QPushButton,

   QFileDialog, QTableWidget, QTableWidgetItem, QMessageBox

)

from PySide6.QtCore import Qt


BASE_DIR = Path(__file__).parent

ARTISTS_FILE = BASE_DIR / "artists.json"

UNDO_FILE = BASE_DIR / "undo_log.json"


# ---------- Utils ----------


def load_artists():

   if ARTISTS_FILE.exists():

       with open(ARTISTS_FILE, "r", encoding="utf-8") as f:

           return json.load(f)

   return {}


def save_artists(data):

   with open(ARTISTS_FILE, "w", encoding="utf-8") as f:

       json.dump(data, f, ensure_ascii=False, indent=2)


def clean_name(name):

   name = re.sub(r"[_\-\.]", " ", name)

   name = re.sub(r"[\"\'`]", "", name)

   name = re.sub(r"\s+", " ", name)

   return name.strip()


def transliterate_hebrew(text):

   table = {

       "א": "a", "ב": "b", "ג": "g", "ד": "d", "ה": "h",

       "ו": "v", "ז": "z", "ח": "ch", "ט": "t",

       "י": "i", "כ": "k", "ל": "l", "מ": "m",

       "נ": "n", "ס": "s", "ע": "a", "פ": "p",

       "צ": "tz", "ק": "k", "ר": "r", "ש": "sh",

       "ת": "t", "ך": "k", "ם": "m", "ן": "n",

       "ף": "f", "ץ": "tz"

   }

   return "".join(table.get(c, c) for c in text)


# ---------- Main App ----------


class TuneMaster(QWidget):

   def __init__(self):

       super().__init__()

       self.setWindowTitle("TuneMaster – Safe Rename")

       self.resize(800, 500)


       self.layout = QVBoxLayout(self)


       self.btn_select = QPushButton("בחר תיקייה")

       self.btn_execute = QPushButton("בצע שינויים")

       self.btn_undo = QPushButton("בטל שינויים")


       self.table = QTableWidget(0, 3)

       self.table.setHorizontalHeaderLabels(["מקור", "חדש", "נתיב מלא"])

       self.table.horizontalHeader().setStretchLastSection(True)


       self.layout.addWidget(self.btn_select)

       self.layout.addWidget(self.table)

       self.layout.addWidget(self.btn_execute)

       self.layout.addWidget(self.btn_undo)


       self.btn_select.clicked.connect(self.select_folder)

       self.btn_execute.clicked.connect(self.execute)

       self.btn_undo.clicked.connect(self.undo)


       self.preview = []

       self.artists = load_artists()


   def select_folder(self):

       folder = QFileDialog.getExistingDirectory(self, "בחר תיקייה")

       if not folder:

           return


       self.preview.clear()

       self.table.setRowCount(0)


       for root, _, files in os.walk(folder):

           for f in files:

               path = Path(root) / f

               stem = path.stem

               ext = path.suffix


               clean = clean_name(stem)


               new_name = None

               for he, en in self.artists.items():

                   if he in clean:

                       new_name = clean.replace(he, en)

                       break


               if not new_name:

                   new_name = transliterate_hebrew(clean)


               new_full = new_name + ext

               if new_full != f:

                   self.preview.append((path, path.with_name(new_full)))


       for old, new in self.preview:

           row = self.table.rowCount()

           self.table.insertRow(row)

           self.table.setItem(row, 0, QTableWidgetItem(old.name))

           self.table.setItem(row, 1, QTableWidgetItem(new.name))

           self.table.setItem(row, 2, QTableWidgetItem(str(old)))


   def execute(self):

       if not self.preview:

           return


       undo_data = []

       for old, new in self.preview:

           if new.exists():

               continue

           shutil.move(str(old), str(new))

           undo_data.append({"from": str(new), "to": str(old)})


       with open(UNDO_FILE, "w", encoding="utf-8") as f:

           json.dump(undo_data, f, indent=2, ensure_ascii=False)


       QMessageBox.information(self, "בוצע", "השינויים בוצעו בהצלחה")


   def undo(self):

       if not UNDO_FILE.exists():

           QMessageBox.warning(self, "אין", "אין מה לבטל")

           return


       with open(UNDO_FILE, "r", encoding="utf-8") as f:

           undo_data = json.load(f)


       for item in undo_data:

           if Path(item["from"]).exists():

               shutil.move(item["from"], item["to"])


       UNDO_FILE.unlink()

       QMessageBox.information(self, "בוטל", "כל השינויים בוטלו")


# ---------- Run ----------


if __name__ == "__main__":

   app = QApplication([])

   win = TuneMaster()

   win.show()

   app.exec()

מצחיקנקדימון
אתה מודע לזה שאין סיכוינפשי תערוג

שמישהו עם ראש על הכתפיים יריץ קוד שמישהו אחר כתב.

נכון?


לא הבנתי מה הבעיה שלך להריץ אותו.

תוריד vc code ותריץ

ומעבר לזהמבולבלת מאדדדד
בפייתון הרווחים קריטיים.


אני לא חושבת שלהעתיק מפה יעבוד. 

אתה לא צריך אותנוultracrepidam

תכתוב "run python online" ותראה אופציות להרצה.

 

ואם אתה רוצה ממש להשקיע תוריד את התוכנות הנדרשות ותריץ עצמאית

זה לא יעבוד עם online pythonנפשי תערוג

כי הוא צריך לעבוד עם קבצים

ואיך הוא יראה שינוי בשם הקובץ?

כן אני רק אוודא שזה לא יסדר לי את הקבציםאדם פרו+

בצורה שאני לא רוצה..

ולא איכפת לי לבדוק את הקוד אם הוא עובד

זה תוכנה לסידור קבצי מוזיקה לנגן שלא תומך בעבריתאדם פרו+אחרונה

או משהו כזה.

מתרגמת את שמות הקבצים לאנגלית.

משרה ממשלתיתאונמר

כן או לא?

יתרונות חסרונות?

אין לי מושג מה זה אומר ואשמח לכל מידע שיש לכם.

בנוסף - כמה אני אמורה להגיד ציפיות שכר, אם אני ניגשת למכרז - יש לי 3 שנים ניסיון full stack.

 

תודה לכם🙏

העסקה ישירה או דרך מיקור-חוץ? אם העסקה ישירה, האםפ.א.

בחוזה אישי או הסכם עבודה קיבוצי? יש ועד עובדים?

 

משכורת גלובלית או לפי שעון נוכחות?
 

יש מאפיינים שונים להעסקה במשרה ממשלתית.  


 

התנאים במשרד החנוך אינם התנאים במשרד הביטחון, למשל.  

הייאונמר

מיקור חוץ.

מאמינה שלפי שעון נוכחות.

דרך מיקור חוץ השכר גבוה מאשר עובדי מדינה באותו תפקפ.א.

תפקיד.  


השכר הגבוה יותר מגלם את הזכויות והתנאים העודפים שיש לעובדים בקביעות באותו מקום.  


בתפקידי תכנות, הנדסה, מערכות מידע - השכר במיקור חוץ יכול להיות מאוד טוב.  


החסרון הבסיסי והגדול - חוץ מהשכר, אין שום תנאים נלווים שווים.  


ההעסקה דרך מיקור חוץ במשרה ממשלתית - לברר בזמן הצגת הצעת השכר האם המשרה והשכר נמצאים תחת מגבלת מכסת שעות שנתיות של המעסיק.  

לדוגמה האם זה לפי ממוצע 180 שעות בחודש כפול 12 חודשים, 2160 שעות שנתיות.  


אם זה כך באותה משרה, ביצוע שעות נוספות אומנם מקפיץ מאוד את השכר מאוד באותו חודש, באלפי שקלים אפילו, אך השעות הנוספות אוכלות מהעוגה השנתית של מכסת השעות ויתכן שהמכסה של 2160 שעות, מהדוגמה, יאזלו חודש לפני סוף השנה או שבועיים לפני, ואז צריך לשבת בבית עד לתחילת שנת התקציב הבאה של אותו משרד ממשלתי.  

אוקיי. תודה רבה!!אונמראחרונה
אני לא מבין בשכר בממשלהמשה

בגדול, זה נחשב מקומות עבודה יציבים יותר שמשלמים פחות.

תודה!אונמר
קוד לcmdפצל"פ

מישהו יכול לכתוב לי פה קוד לcmd (אני הולך לשמור אותו כקובץ bat בתיקייה הרלוונטית במחשב) שיהפוך את כל הסיומות של הקבצים שנמצאים בתיקייה של הסקריפט לאותיות גדולות?


למשל יש לי בתיקיה קבצים בשם

דוגמהא.rtf

דוגמהב.zip

ודוגמהג.doc


אחרי הקוד זה צריך להיראות ככה

דוגמהא.RTF

דוגמהב.ZIP

ודוגמהג.DOC


זה ממש יעזור לי

תודה רבה!

יהיה לך לדעתי יותר קל עם powershellמשה

בכיוון הזה

How to convert the content of the file into uppercase or lowercase?

 

במקרה הזה אתה בעברית אז לא צריך לפצל את הסיומת.

תודה!פצל"פאחרונה

רק לא כ"כ הבנתי מה שכתבת אחרי הקישור

וגם הוא מדבר שם (לפחות מה שאני הבנתי) על להמיר תוכן של קובץ, איך עושים את זה לשמות הקבצים? או שזה פשוט תוכן הקובץ של התיקיה הגדולה?

מדריך React Memongfxp

היי חברים, רציתי לעדכן שהעלתי סרטון חדש לYouTube - מדריך React Memo

Memo היא פונקציה (HOC) שמאפשרת לנו לדלג על רינדורים חוזרים של קומפוננטה כאשר הProps של הקומפוננטה לא משתנים

קישור לסרטון:

 

מה דעתכם?

איזה נושא תרצו את הסרטון הבא?

יש משהו דומה גם בVUE. יצא לי להשתמש בומשה
מה שם הפיצ'ר המקביל ב Vue?zoharelias
V-memoמשהאחרונה
Apiאפרת???

היי, אני צריכה ייעוץ דחוף ממי שמבין בזה.

אשמח לדבר בפרטי

API -+ ממשק המאפשר גישה תכנותית לספריה/תוכנה11111

זה יכול להיות יותר מידי דברים,

רצוי שתשאלי פה את השאלה על מנת שאחרים יוכלו להעזר בשאלה גם אחרים,

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

מה בדיוק צריכה ?Adi alon

יכולה להיכנס לכאן לקרוא יש כמה הסברים בנושא :

 

שיווק דיגיטלי - בלוג מקצועי בעולמות השיווק | A-WEB

 

בטח מאוחר מדימשהאחרונה

אבל לשאול שאלות אפשר.

היי חברה לגבי בריאות העיניים למתכנתים שביננוhameiri13

יש משהו שנשקרא "אור כחול" שכל המסכים פולטי והדבר הזה יכול 

להכביד על העיניים כשאנו משתמשים במכך למשך זמן רב ללא הפסקה.

 

ממליץ לקרוא כמה מאמרים בנושא:

שמירה על העיניים כשיושבים מול המחשב

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

עמוד ראשי – יואב טלר

 

שיהיה רק בריאות חברים !

הוספת גרפיקה בתכנותמתלמד123

שאלת בורות, אבל אני רוצה להבין ולא מצאתי תשובה לבד: נניח אני מפתח משחק בC++, איפה בדיוק נכנסת הגרפיקה? ראיתי שיש פקודות למשתנים לולאות וכו', איך אני מכניס תמונה שתזוז על פי התוכנה? אני מצייר אותה בקובץ נפרד ומכניס? אם כן איך ואיפה?

לא קריטי לי כל כך להיכנס לפרטים עכשיו, אבל אני נכנס לנושא אז אני רוצה לפחות להבין בגדול.

למה C++?אליסף א

אם אתה רוצה, חיפוש ביוטיוב יוביל אותך בקלות לסידרה של בניית מכונות משחק 



זוהי הדרך הארוכה שהיא קצרה

בכל אופן, ישנן שפות אחרות שיותר מתאימות לזה.

אם תכתוב מה אתה מתכנן אולי אוכל לכוון אותך

רק עבור ציור על המסךאליסף א

Write directly to screen with c++ - Stack Overflow

תקרא את התשובת שם 

 

יותר לעומקאליסף א

Module 3. Windows Graphics - Win32 apps

לא קראתי, אבל נראה שיש שם הרבה חומר.

ושוב אני שואל , למה C++?


כי זו השפה שאתה מכיר? 
אולי בפייטון יהיה לך יותר קל להתחיל.?


עוד סרטונים

https://www.youtube.com/watch?v=1KD4Ae0tX0g&list=PL-K0viiuJ2RctP5nlJlqmHGeh66-GOZR_


 

לפי מה ששמעתי זאת אחת השפות הטובות למשחקיםמתלמד123

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

זה מה שהבנתי מאנשים שמלמדים פיתוח משחקים, אבל יש סיכוי שזה לא נכון, כמה אתה בטוח שC++ לא טובה?

אני חושב על משהו של אסטרטגיה בלי המון גרפיקה, לא יודע בדיוק מה...

 

השאלה מה אתה מנסה ללמודאליסף א

באיזה שלב אתה.

אתה יודע לתכנת ? 
בכמה שפות ?

כמה נסיון יש לך?

מה המטרה שלך? לכתוב משחק? או ללמוד לתכנת?

האם שמעת על unity? 
שזו פלטפורמה לכתיבת משחקים, כוללת תלת מימד.

אם המטרה היא ללמוד לתכנת
אז C++ היא בהחלט מקום טוב ללמוד בו, רק מעט קשוח. 

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

יתרונה של C++ היא בקרבתה לחומרה, ולכן היא מהירה יותר. ולכן מנוע שתכתוב בה, יעבוד יותר טוב.

בהצלחה. 

אני רוצה ללמוד תכנותמתלמד123

ולא מחפש עכשיו תלת ממד.

תודה על התשובות.

תתחיל עם #c יהיה לך יותר.קלמשה
C++ קשוח.
אפשרות שניה, jsמשה
יש ממש ספריות למשחקים על בסיס canvas.
נכון, #C, או JS או כמובן פייתוןzohareliasאחרונה

למי שרוצה להתחיל ללמוד תכנות, אלו השפות הכי מומלצות, באופן כללי.

 

עם שלושתן אפשר לתכנת משחקים.

אתה צריך להוסיף אפשרות ל "לייק"אליסף א

הייתי עושה לך .

 

תקלה בויזואל סטודיומתלמד123

יש לי ויזואל סטודיו שהשתמשתי בו לפייתון, ועכשיו אני רוצה ללמוד C++ אז הורדתי מהאתר גם פלטפורמות לC++ אבל כשאני פותח אין לי איפה לכתוב. אשמח אם מישהו יודע איך פותרים את זה

זה נראה ככה:

 

קודם תתחבר לויזואל, זה בימין למעלה.טוב שם

אח"כ בפתיחת הקובץ תבדוק שמותקן השפה המסויימת.

פתח פרוייקט חדשאליסף א
זה לא עזר לי, אבל הסתדרתימתלמד123אחרונה

פשוט פתחתי סוג אחר של פלטפורמה לC++, לא יודע מה הייתה הבעיה ומה זאת הפלטפורמה הקודמת, אבל העיקר שיש לי פלטפורמה...

אולי יעניין אותך