কেন জমে ওভার সংহত?


14

আমি কীভাবে ডিআইওয়াই পদার্থবিজ্ঞান শিখতে শুরু করছি এবং সবচেয়ে বেসিক স্তরে ইন্টিগ্রেশন বাস্তবায়ন সম্পর্কে আমার একটি প্রশ্ন রয়েছে (উদাহরণস্বরূপ এটি কোনও ইউরার বনাম আর কে 4 প্রশ্ন নয়)।

আমি প্রায় প্রতিটি উদাহরণে এসেছি এমন কিছু integrate()ফাংশন রয়েছে যা শেষ আপডেটের পরে টাইমস্টেপ পায় এবং শেষ আপডেটের পরে ত্বরণ (এবং / বা বেগ এবং / বা অবস্থান) আপডেট করে।

সরল আকারে: position += velocity * deltaTime

যাইহোক, আমি বুঝতে পারি না কেন এটি কেন এমনভাবে জমে থাকে যখন কোনও ফাংশন পরিবর্তন করে এটি সহজেই অর্জিত হতে পারে । উদাহরণস্বরূপ: getPosition = makeNewFunction()যা স্বাক্ষরযুক্ত এমন কোনও কিছু ফিরিয়ে দিতে পারে Time -> Positionএবং সেই ফাংশনের অভ্যন্তরীণ কাজগুলি উপযুক্ত গাণিতিক সূত্রের মাধ্যমে উত্পন্ন হয়।

এইভাবে, কোনও জমে থাকা নেই ... যখনই পজিশনটি অর্জন করা দরকার, এটি বর্তমান সময়ের সাথে সেই ফাংশনটিকে কল করে।

আমার নবাগত বোঝাপড়াটি হ'ল এটিও ত্রুটিগুলি এড়াতে পারে যা জমা হতে পারে ... সুতরাং এটি কেন কাজ করে না, আমি কী মিস করছি?

(fwiw আমি হয়নি একসাথে এই idea- ধারণার মৌলিক প্রমাণ করা এটি একই সময়ে কয়েক অন্যান্য বিষয় পরীক্ষা যদিও তাই এটি পরিষ্কার উদাহরণ নয়: https://github.com/dakom/ball-bounce-frp )

সম্পাদনা 1: মন্তব্যগুলিতে উল্লিখিত হিসাবে, সম্ভবত এটি উল্লেখ করা গুরুত্বপূর্ণ যে আমি এখনও ত্বরণ পরিবর্তন করার বিষয়ে, বা জার্ক এবং অন্যান্য জিনিসগুলির সাথে ডিল করতে শিখিনি যেগুলি ধ্রুবক ত্বরণের চেয়ে উচ্চতর অর্ডার ইন্টিগ্রেশন প্রয়োজন।

সম্পাদনা 2: এখানে ধারণা কিছু মৌলিক নমুনা কোড, এবং ছদ্ম জাভাস্ক্রিপ্ট সিনট্যাক্স - দয়া করে মনে রাখবেন getKinematicPositionহয় আংশিকভাবে প্রয়োগ তাই এটি ঠিক সময়ে একটি নতুন ফাংশন ফিরে আসছে -> অবস্থান:

আমি এখানে অবস্থানের জন্য আঁকড়ে আছি তবে এটি অন্য কিছু হতে পারে, যেমন getVelocityআমার ধারণা ...

getKinematicPosition = initialVelocity => acceleration => time => 
  ((.5 *acceleration) * (time * time)) + (initialVelocity * time);

getPosition = getKinematicPosition ([0,0,0]) (GRAVITY);

onTick = totalTime => {
   position = getPosition (totalTime);
   onCollision = () => {
     getPosition = changeTheFunction(totalTime);
     //changeTheFunction uses totalTime to base updates from 0
     //it could use getKinematicPosition or something else entirely
   }
}

1
আপনার অবিচ্ছিন্ন গতি / ত্বরণ না থাকলে আপনার ফাংশনটি কী করবে?
লিনেথ

আমার কোন ধারণা নাই! : ডি যদি এর কারণ হয় - যেমন আমি এখনও ত্বরণ পরিবর্তন করতে পেলাম না, আমি উত্তর হিসাবে এটি কোথায় ভেঙে পড়বে তার পুরো ব্যাখ্যাটির প্রশংসা করব (নইলে আমি এই কার্যকরী রাস্তায় নেমে কোনও শেষ মুহূর্তে আঘাত করতে পারি) !)
ডেভিডকোমার

6
ঠিক আছে যদি আপনার অবজেক্টটি কেবল একটি বৃত্তের চারপাশে চলে যায়, তবে নিশ্চিত ... এটি যখন বাক্সটি প্লেয়ারটি চাপ দিচ্ছে তখন কী হবে? আপনি যখন গেটপজিশন (এখন + 100) কল করবেন তখন কি ভবিষ্যতের ভবিষ্যদ্বাণী করে প্লেয়ার কখন এটি থামানো বন্ধ করবে? আপনি যখন গেটপজিশন (এখন -100) কল করবেন তখন কি অতীতের কথা মনে রাখতে হবে?
ব্যবহারকারী 253751

উত্তর:


34

... সেই ফাংশনের অভ্যন্তরীণ কাজগুলি উপযুক্ত গাণিতিক সূত্রের মাধ্যমে উত্পন্ন হয় ...

এটি কয়েকটি নির্দিষ্ট শ্রেণীর সমস্যার জন্য কাজ করবে এবং অনুসন্ধানের মূল বাক্যাংশটি হ'ল একটি বন্ধ-ফর্ম সমাধান। উদাহরণস্বরূপ, কেরবল স্পেস প্রোগ্রামে কক্ষপথে একটি মহাকাশযানের গতি এইভাবে গণনা করা হয়। দুর্ভাগ্যক্রমে, বেশিরভাগ অ-তুচ্ছ সমস্যা (যেমন, বলা মহাকাশযানের বায়ুমণ্ডলীয় প্রেরণা) এর কোনও ক্লোজ-ফর্ম সমাধান নেই। এইভাবে গাণিতিকভাবে সহজ সংখ্যার আনুমানিক প্রয়োজন ( integrate()সময়ের সাথে সাথে)।


আহ্ ... দুর্দান্ত! আপনার যদি এক মিনিট থাকে - আপনি এই কার্যকরী পদ্ধতির জন্য লক্ষ্য রাখার বিষয়ে কী ভাবেন এবং তারপরে কীভাবে এটি কীভাবে কাজ করতে হয় তা যদি আমি বুঝতে না পারি তবে সঞ্চারে ফিরে পড়ুন (উদাহরণস্বরূপ যদি আমি একটি নন-বদ্ধ ফর্ম সমস্যার সাথে ডিল করছি বা এটিকে কীভাবে রূপান্তর করা যায় তা আমি বুঝতে পারি না)? আমি গণিত 1: 1 এর সাথে
খাপ খায়

8
@ ডেভিডকোমর আপনি কেন জেনারিং ফাংশন চালিয়ে যেতে চান? যদি আপনি এটিকে টানতে পারেন তবে আপনি কেবল প্রাক-গণনা করতে পারেন এবং পুরো ট্র্যাজেক্টোরি রেকর্ড করতে পারেন! অবশ্যই, লোকেরা ইতিমধ্যে এটি করে থাকে: এটিকে অ্যানিমেশন বলা হয় এবং এটির সূক্ষ্মতার অংশ রয়েছে।
জোকার_ভিডি

রানটাইম গতিশীলতার উপর ভিত্তি করে ফাংশনগুলি পরিবর্তন হয় ... উদাহরণস্বরূপ এফআরপি বল-বাউন্স দেখুন
ডেভিডকোমার

আসলে আমাকে
পংয়ের

10

আপনার পদ্ধতির সাথে সমস্যাটি হ'ল, আপনার অবজেক্টের কোনও ইতিহাস নেই। আপনি যদি কোনও দিকে এগিয়ে যান তবে আপনি অবস্থানটি গণনা করতে পারেন, তবে আপনি যদি কিছু আঘাত করে এবং পিছনে ফিরে যান তবে কি হবে?
আপনি যদি আপনার সর্বশেষ পরিচিত অবস্থান থেকে জমা হন তবে আপনি প্রভাবটি পরিচালনা করতে পারেন এবং সেখান থেকে চালিয়ে যেতে পারেন। আপনি যদি শুরু থেকে এটি গণনা করার চেষ্টা করেন, আপনাকে প্রতিবারের প্রভাবটিকে পুনরায় গণনা করতে হবে, বা এটিকে নতুন শুরু অবস্থান হিসাবে সেট করতে হবে।

আপনার উদাহরণ আমাকে একটি রেসিং গেমের কথা মনে করিয়ে দিয়েছে। (পদার্থ পদার্থবিজ্ঞানের ইঞ্জিন দ্বারা নিয়ন্ত্রণ করা হবে কিনা তা আমি জানি না, তবে আমি মনে করি এটি ব্যাখ্যা করার জন্য এটি দুর্দান্ত কাজ করে)
আপনি যদি নিজের গাড়ি দিয়ে গাড়ি চালান তবে আপনি গতি বাড়িয়ে ধীর করতে পারবেন। আপনার গাড়ির গতি প্রোফাইলটি এখন থেকে এখন পর্যন্ত কেমন দেখেছে তা জেনে আপনি নিজের অবস্থান গণনা করতে পারবেন না। শুরু থেকে এখন অবধি প্রতিটি ফ্রেমে আপনার যে গতি ছিল তা সঞ্চয় করার চেয়ে দূরত্ব সংগ্রহ করা সহজ।

দাবি অস্বীকার: আমি এখন পর্যন্ত গেম ফিজিক্স লিখিনি, আমি সমস্যাটি দেখি।

সম্পাদনা:
এই চিত্রটিতে আপনি দেখতে পাবেন যে সময়ের সাথে মানগুলি কীভাবে পরিবর্তিত হয়।
লাল = ত্বরণ (শুরু থেকে তীব্র
হওয়া থেকে নীচে নামতে) সবুজ = গতি (থামানো থেকে শুরু করা)
নীল = আপনি যেভাবে গেছেন।

মোট গতি আপনার প্রারম্ভিক অবস্থান থেকে আপনার আসল লগনে ত্বরণের অবিচ্ছেদ্য। (রেখা এবং অক্ষের মধ্যবর্তী অঞ্চল)
উপায়টি হল আপনার গতির অবিচ্ছেদ্য।
আপনি যদি আপনার ত্বরণের জন্য মানগুলি জানেন তবে আপনি অন্যান্য মানগুলি গণনা করতে পারেন। তবে আমি যদি ভুল না হয়ে থাকি তবে পিসিগুলিতে জমা হয়ে গণনাও করা হয় ral এবং সমস্ত ত্বরণ মান সঞ্চিত করার জন্য এটি আরও বেশি ওভারহেড।
প্লাস এটি প্রতিটি ফ্রেম গণনা করা সম্ভবত খুব বেশি।

ত্বরণ / গতি / উপায়-সময় চিত্র

আমি জানি, আমার পেইন্ট দক্ষতা দুর্দান্ত। ;)

সম্পাদনা 2:
এই উদাহরণটি রৈখিক চলনের জন্য। কংগিং দিকনির্দেশ এটি আরও জটিল করে তোলে।


"বা এটিকে নতুন শুরু অবস্থান হিসাবে সেট করুন।" - হ্যাঁ, তবে আমি সেই সমস্যাটি দেখতে পাচ্ছি না :) কারণ: উদাহরণস্বরূপ ... আমি দৃ strong় অনুভূতি পাচ্ছি যে এই ব্যর্থতাটি স্বজ্ঞাতভাবে বোঝার জন্য এই জাতীয় জটিল কিছু নিয়ে সত্যই আমাকে খেলতে শুরু করা প্রয়োজন .. ।
ডেভিডকোমার

একটি নতুন অবস্থান নির্ধারণ সম্ভবত সমস্যা নয়। আমি গাড়ির অংশটি সম্পাদনা করেছি
লিনেথ

1
একটি গাড়ী খেলায়, আমি কল্পনা আরও তীব্রতর হতে হবে কল্পনা। সম্ভবত জাম্প এবং স্পাইক হতে পারে এবং এটি গতির উপর নির্ভর করে। (উদাহরণস্বরূপ, গাড়ী শীর্ষ গতির কাছে যাওয়ার সাথে সাথে
ত্বরণটি

3
@ ডেভিডকোমার এমনকি কোনও গাড়ি নিয়েও বিরক্ত করবেন না (যদি না আপনি চান), একটি প্রাথমিক প্লাটফর্মার এটি করবে। কীভাবে মারিও.জেটপজিশন (সময়) সুপার মারিও ব্রোসে কাজ করে?
ব্যবহারকারী 253751

8

যাইহোক, আমি বুঝতে পারি না কেন এটি কেন এমনভাবে জমে থাকে যখন কোনও ফাংশন পরিবর্তন করে এটি সহজেই অর্জিত হতে পারে। উদাহরণস্বরূপ: getPosition = MakeNewFunction () যা সময়ের -> পজিশনের স্বাক্ষরযুক্ত এমন কিছু ফিরিয়ে দিতে পারে এবং সেই ফাংশনের অভ্যন্তরীণ কাজগুলি উপযুক্ত গাণিতিক সূত্রের মাধ্যমে উত্পন্ন হয়।

আপনি পারেন!

এটি একটি বিশ্লেষণাত্মক বা বদ্ধ ফর্ম সমাধান ব্যবহার করে বলা হয় । এটির সুবিধাটি এটি আরও নির্ভুল যেহেতু সময়ের সাথে জমে থাকা গোলাকার ত্রুটিগুলি অস্তিত্বহীন।

যাইহোক, এটি যদি আগে থেকেই এমন একটি বদ্ধ ফর্মটি জানত তবে এবং যদি এটি কাজ করে। গেমসের জন্য, এটি প্রায়শই সহজভাবে হয় না।

প্লেয়ারের চলাচল অনিয়মিত এবং কেবল প্রাক-গণিত ফাংশনে রাখা যায় না। প্লেয়ার তার গতি এবং অভিমুখীকরণটি প্রায়শই পরিবর্তন করতে পারে এবং করবে।

এনপিসিগুলি সম্ভাব্যভাবে বদ্ধ ফর্ম সমাধানগুলি ব্যবহার করতে পারে এবং বাস্তবে তারা কখনও কখনও তা করে। তবে এর কিছু অন্যান্য ত্রুটি রয়েছে। একটি সহজ রেসিং গেম সম্পর্কে চিন্তা করুন। প্রতিবার আপনার যানবাহন অন্য গাড়ির সাথে সংঘর্ষের সময়, আপনাকে নিজের ক্রিয়াকলাপটি পরিবর্তন করতে হবে। ভূগর্ভস্থ উপর নির্ভর করে গাড়ী দ্রুত চলতে পারে। তারপরে এমন একটি বদ্ধ-ফর্ম সমাধান সন্ধান করা বেশ কঠিন হবে। প্রকৃতপক্ষে, সম্ভবত আরও অনেকগুলি ঘটনা রয়েছে যেখানে এই ধরনের বদ্ধ ফর্ম সন্ধান করা হয় অসম্ভব বা এত জটিল যে এটি কেবল সম্ভব নয়।

বদ্ধ-ফর্ম সমাধান ব্যবহারের একটি দুর্দান্ত উদাহরণ হ'ল কেরবল স্পেস প্রোগ্রাম। আপনার রকেটটি কক্ষপথে প্রবেশের পরে এবং চাপের আওতায় না যেতেই কেএসপি এটিকে "রেলের উপর" ফেলে দিতে পারে। কক্ষপথ দুটি দেহব্যবস্থায় পূর্ব নির্ধারিত এবং পর্যায়ক্রমিক হয়। যতক্ষণ রকেট আর কোনও চাপ প্রয়োগ না করে, আপনি ইতিমধ্যে জানেন যে রকেটটি কোথায় থাকবে এবং আপনি কেবল কল করতে পারেন getPositionAtTime(t)(এটির নাম ঠিক তেমন নয়, তবে আপনি ধারণাটি পাবেন)।

অনুশীলনে, তবে, কেবল ধাপে ধাপে ইন্টিগ্রেশন ব্যবহার করা প্রায়শই অনেক বেশি ব্যবহারিক। তবে যখন আপনি এমন পরিস্থিতি দেখেন যেখানে একটি বদ্ধ-ফর্ম সমাধান উপস্থিত রয়েছে এবং এটি গণনা করা সহজ, তখন এর জন্য যান! এটি ব্যবহার না করার কোনও কারণ নেই ।

উদাহরণস্বরূপ, যদি আপনার চরিত্রটি একটি কামান লক্ষ্য করে, আপনি খুব সহজেই একটি বদ্ধ-ফর্ম সমাধান ব্যবহার করে কামানের বলের পূর্বাভাসিত প্রভাব পয়েন্টটি প্রদর্শন করতে পারেন। এবং, যদি আপনার গেমটি কামানের বলের গতিপথ পরিবর্তন করার অনুমতি না দেয় (উদাহরণস্বরূপ কোনও বাতাস নেই), আপনি এমনকি এটি তোপের বলটি সরাতে ব্যবহার করতে পারেন। দ্রষ্টব্য যে আপনার তখন আপনার কামানের বলের পথে যেতে বাধাগুলির বিশেষ যত্ন নেওয়া উচিত।

অনেকগুলি অনুরূপ পরিস্থিতি রয়েছে। আপনি যদি রাউন্ড-ভিত্তিক গেমটি তৈরি করে চলেছেন তবে আরটিএস গেমটি তৈরির সময় আপনি আরও অনেক বেশি ক্লোজ-ফর্ম সলিউশন উপলব্ধ হওয়ার সম্ভাবনা রয়েছে, যেহেতু আপনি সমস্ত প্যারামিটার আগেই জানেন এবং তারা দৃ not়তার সাথে বলতে পারেন যে তারা কোনও পরিবর্তন করে না (হঠাৎ কিছুই সরবে না) সেই পথে প্রবেশ করুন, উদাহরণস্বরূপ)।

মনে রাখবেন যে পদক্ষেপের সংহতকরণের সংখ্যাগত ভুলগুলি মোকাবিলার জন্য কৌশল রয়েছে। উদাহরণস্বরূপ, আপনি জমে থাকা ত্রুটির উপর নজর রাখতে পারেন এবং ত্রুটিটি আটকে রাখতে একটি সংশোধনকারী শব্দ প্রয়োগ করতে পারেন, উদাহরণস্বরূপ কাহান সামেশন


8

কেবল একটি সহজ বাউন্সিং বলের ক্ষেত্রে, বদ্ধ ফর্ম সমাধানগুলি নিয়ে আসা সহজ। তবে আরও জটিল সিস্টেমে একটি সাধারণ ডিফারেনশিয়াল সমীকরণ (ওডিই) সমাধানের প্রয়োজন হয় require সংখ্যক সলভারগুলির সহজতম ব্যতীত সমস্তগুলি পরিচালনা করার জন্য প্রয়োজনীয়।

সংখ্যাযুক্ত ওডিই সলভারগুলির প্রকৃতপক্ষে দুটি শ্রেণি রয়েছে: সুস্পষ্ট এবং অন্তর্নিহিত। সুস্পষ্ট solvers আপনার পরবর্তী রাষ্ট্রের জন্য একটি বদ্ধ ফর্ম আনুমানিকতা সরবরাহ করে, অন্তর্নিহিত solvers এটি করার জন্য একটি সমীকরণ সমাধান প্রয়োজন। আপনার বাউন্সিং বলের জন্য আপনি যা বর্ণনা করছেন তা আসলে একটি অন্তর্নিহিত ওডিই সলভার, আপনি এটি জানতেন বা না থাকুক!

অন্তর্নিহিত সমাধানকারীদের অনেক বেশি বড় সময়ের পদক্ষেপ ব্যবহার করতে সক্ষম হওয়ার সুবিধা রয়েছে। আপনার বাউন্সিং বল অ্যালগরিদমের জন্য, আপনার টাইমস্টেপ পরবর্তী সংঘর্ষের সময়কালের জন্য কমপক্ষে বৃহত্তর হতে পারে (যা আপনার ফাংশন বদলে দেবে)। এটি আপনার প্রোগ্রামটিকে আরও দ্রুত চালিত করতে পারে। তবে, সাধারণভাবে আমরা ওডিডিগুলিতে আগ্রহী এমন সবসময় ভাল অন্তর্নিহিত সমাধান খুঁজে পাই না When যখন আমরা না পারি, আমরা সুস্পষ্ট একীকরণের পিছনে পড়ে যাই।

সুস্পষ্ট একীকরণের সাথে আমি যে বড় সুবিধাটি দেখি তা হ'ল গেটচগুলি সুপরিচিত। আপনি 60 এর দশক থেকে যে কোনও পাঠ্যপুস্তকটি খুলতে পারেন এবং নির্দিষ্ট ইন্টিগ্রেশন কৌশলগুলির সাথে উত্থিত ছোট্ট quirks সম্পর্কে আপনার যা যা জানা দরকার তা পড়তে পারেন। সুতরাং, একজন বিকাশকারী এই দক্ষতাগুলি একবার শিখেন এবং তাদের আর কখনও এগুলি শিখতে হবে না। আপনি যদি অন্তর্নিহিত ইন্টিগ্রেশন করছেন, প্রতিটি ব্যবহারের ক্ষেত্রে কিছুটা পৃথক, কিছুটা পৃথক পৃথক গ্যাচাস আছে। আপনি একটি কাজ থেকে যা শিখেছেন তা পরবর্তী একটিতে প্রয়োগ করা কিছুটা শক্ত।


1

pos (t) = v (t) * t

শুধুমাত্র পোস (0) = 0 এবং ভি (টি) = কে হলে কাজ করে

আপনি প্রাথমিক অবস্থার এবং পুরো বেগের কার্যকারিতা সম্পর্কে জ্ঞান ছাড়াই সময়ের সাথে অবস্থান সম্পর্কিত করতে পারবেন না, সুতরাং সমীকরণটি অখণ্ডের সমান হিসাবে

pos (t) = v (t) এর অবিচ্ছেদ্য dt থেকে 0 থেকে t

সম্পাদনা _________

মন্তব্যগুলির প্রতি সামান্য প্রমাণ (এখানে পোজ (0) = 0) ধরে নিচ্ছেন

যাক ভি (টি) = 4

eqn 1: pos (t) = 4 * t (সঠিক)

eqn 2: pos (t) = c + 4 * t থেকে 0 থেকে t = 4 * t (সঠিক)

চলুন v (t) = 2 * t

eqn 1: pos (t) = 2 * t ^ 2 (ভুল)

eqn 2: pos (t) = c + t ^ 2 থেকে 0 থেকে t = t ^ 2 (সঠিক)

আমার যোগটি যুক্ত করা উচিত যে আপনার সমীকরণটি ইতিমধ্যে ধ্রুবক ত্বরণে কারণ রয়েছে (যেমন আপনার সমীকরণ eqn 2 যেখানে v (t) = v0 + a * t এবং সংহতকরণের সীমা t0 এবং t) সুতরাং আপনার সমীকরণটি যতক্ষণ আপডেট করবেন ততক্ষণ কাজ করা উচিত প্রাথমিক অবস্থান, প্রাথমিক গতি এবং ত্বরণ স্থির থাকে remains

সম্পাদনা 2

আমার আরও যোগ করা উচিত যে আপনি প্রাথমিক পোস্ট, প্রাথমিক গতিবেগ, প্রাথমিক ত্বরণ এবং ধ্রুবক জারক দিয়ে অবস্থান গণনা করতে পারেন। অন্য কথায়, আপনি eqn 2 এর ভিত্তিতে একটি ফাংশন তৈরি করতে পারেন যা অবস্থান বনাম সময়ের প্রতিনিধিত্ব করে যেমন এর ডেরাইভেটিভগুলিতে আলাদা করে অর্থাৎ গতিবেগ, জার্ক, যা কিছু আসে, ইত্যাদি, ইত্যাদি ইত্যাদি, তবে আপনি কেবল আপনার সমীকরণে সঠিক হতে পারবেন যদি v (t) কে সেভাবে মডেল করা যায়। যদি ভি (টি) কেবল বেগ, ত্বরণ, ধ্রুবক জার্ক ইত্যাদি দিয়ে মডেল করা যায় না, তবে আপনাকে eqn 2 এর প্রায় কাছাকাছি ফিরে যেতে হবে, যখন আপনার যখন জিনিসগুলি উদ্রেক, বায়ু প্রতিরোধ, বাতাস ইত্যাদির সংঘটন ঘটে তখন ঘটে থাকে s ।


একটি ধ্রুবক। এর অর্থ হ'ল ভি (টি) অবশ্যই সময়ের সাথে পৃথক হবে না
কিয় 13

আমাকে এটি নিয়ে বসে থাকতে হবে এবং কেন এটি সত্য তা নিয়ে কাজ করতে হবে ... আপাতত উজ্জীবিত হচ্ছে :) আমি বিষয়গুলির পরিবর্তনের ক্ষেত্রে প্রশ্নে একটি কোড নমুনা পোস্ট করেছি
ডেভিডকোমার

কোনও সমস্যা নেই, আরও ভাল শব্দ দিয়ে আবার আপডেট হয়েছে :)
কিয় 13
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.