این روش آموزشی، خلق دو تصویر جداگانه را دربردارد. نخست تصوری که میخواهید افکت موجدار را روی آن بهکار برید (مثل پرچم) و پس از آن تصویری که بهعنوان نقشه جابهجا شونده از آن استفاده میشود. به هیچ چیزی به جز مقداری مهارت و یک نسخه فتوشاپ نیاز ندارید.
تصویر اصلی (پرچم)
شاید تاکنون یک پرچم یا بخشی از آن را در فتوشاپ ساخته باشید. البته طرز ساخت عوامل گرافیکی ، هدف این مبحث نیست. شما باید نکات زیر را در نظر داشته باشید.
۱) مطمئن شوید که پرچم تنها از یک لایه تشکیل شده و افکتهای لایه لایه به آن افزوده نشده است. اگر از یک فایل چند لایه استفاده میکنید، آنها را به یک لایه تبدیل کنید (اما تصویر را صاف و هموار نکنید) اگر از افکتهای لایهلایهای استفاده کردهاید. گرافیک آنها را به تصویری معادل یا طرحهای پیکسلی تبدیل کنید.
(Layer> Layer Style> Create Layers) و سپس لایههای حاصل را ترکیب کنید.
۲) بخشهای اطراف پرچم را خالی بگذارید و به یاد داشته باشید که در هنگام کار با افکتهای جابهجا شونده بخشهائی از پرچم که گوشههای بوم نقاشی شده دارد کار را زشت جلوه میدهد. بنابراین اگر اندازه بوم نقاشی را در برابر پرچم بگیرید و پرچم را در مرکز آن قرار دهید، بهتر است (برای این کار می توانید از یک زمینه با رنگ سفید استفاده کنید که لایهها را از هم جدا کرده و تشخیصشان را برای شما راحتتر میکند).
تصویر جابهجا شونده
و حال تصویری که برای جابهجائی نیاز دارید را خواهید ساخت. سعی کنید آن را در حد ممکن ساده نگه دارید. برای شروع سندی جدید با اندازه دو برابر پرچم بسازید. برای بیرون کشیدن افکت مورد نظر به فضای بسیاری نیاز دارید. اگر تصویر جابهجاشونده خیلی کوچک باشد، نتیجه کارتان ضعیف خواهد بود. بنابراین آن را بزرگ و زیبا بسازید. پرچم شما میتواند ۲۴۹*۴۱۵ پیکسل باشد. برای چنین اندازهای میتوانید تصویر جابهجا شونده را ۸۳۰٭۸۳۰ در نظر بگیرید. حال بهعنوان نخستین تلاش در جابهجائی از نقشه شیبدار (متحرک مدرج) استفاده کنید. برای ساخت قنشه شیبدار (متحرک مدرج) در تصویر جابهجا شونده Layer> New Fill Layer> Gradient Fill را برگزینید تا کادر گفتگوی موردنظر نمایان شود.
برای ساخت یک شیب سفارشی، روی تصویر، شیب انتخابی خود را کلیک کنید و نه روی منوی بازشونده! چرا که اینکار کادر گفتگوی Gradient Editor را فرا خواهد خواند.
حال میتوانید در اطراف رنگها، نقطههائی بگذارید و آنها را پخش کنید تا چیزی شبیه به این درست کنید. شما باید حتماً الگوهائی موجدار از سیاه، سفید و خاکستری بسازید. این همان چیزی است که در ساخت سطوح ناهموار یا (موج بزرگ) در تصویر پرچم نیاز دارید. تعداد نوسانها را زیاد کنید و آنها را در فاصلههای نامنظم از یکدیگر قرار دهید.
شما برای ایجاد هرگونه تغییری آزاد هستید تا به نتیجه دلخواه تان برسید. سپس تصویر شیبدارتان را ذخیره کنید. یکی از مشکلاتی که در این بخش با آن روبهرو میشوید این است که هرگاه افکت جابهجاشونده در پرچمتان موردنیاز باشد. نسخه از پیش ذخیره شده، نمایان میشود. اگر در شیب آنها تغییری دهید و بخواهید جابهجائی تازهای در آن پدید آورید، تغییرات در جابهجائی دیده نمیشوند، مگر اینکه تغییرات در شیب، حفظ و نگهداری شوند.
ترکیب شیبها
پیش از کامل کردن جابهجائی یا موج پرچم باید ترفندهائی را به آن بیفزائید که این به معنای افزودن سایه و هایلایت به موجها است. البته در کنار افکت بازتابی آن در تصویر جابهجاشونده خود، همه چیز را انتخاب کنید. سپس Shift-Command-C (مکینتاش) یا Shift-Control-C (در ویندوز) را تایپ کنید تا پیکسلهای تصویر جابهجاشونده را کپی کند (در اینجا روشهای معمولی کپی کردن کارساز نیست و شما باید کلید Shift را پائین نگه دارید). هماکنون نزد تصویر پرچم خود بروید و پیکسلها را جایگزین کنید (Command-V) و سپس شیب را در لایهای جدید که درست بالای لایه پرچم است، جایگزین کنید.
پس از آن با لایه شیبی که انتخاب شده است Layer>Create Clipping Mask (یا چیزی شبیه آن، بسته به نوع فتوشاپی که انتخاب کردهاید) را برگزینید. این اتفاق میافتد. اکنون به پالت Layer رفته و لایه شیبی Blend Mode را به Soft Light تبدیل کنید. حال میتوانید کنتراست/ روشنائی لایههای شیب را برای تأثیر بیشتر روی هایلایتها و سایههائی که ساختهاید، کم یا زیاد کنید.
کج کردن پرچم
زمانی که این افکت را ساختید، اگر میخواهید پرچم شبیه پرچمی شود که از مکانی آویزان است، باید کمی به آن زاویه دهید.
به این منظور در پالت Layer، لایه پرچم را انتخاب کنید، سپس Edit>Free Transform را برگزینید. برای اینکار انحراف افقی را روی ۲۵ تنظیم کنید و پرچم را به اندازه بیست و پنج درجه بچرخانید تا با آن هماهنگ شود. (شما میتوانید این تنظیمات را روی نوار ابزار Tool Option انجام دهید) اکنون آماده هستیم تا جابهجائی را انجام دهیم.
افکت نهائی جابهجائی رسید. برای بهکار بردن این افکت Filter>Distort>Displace را برگزینید تا کادرگفتگوی فیلتری باز شود. افراد مبتدی بهتر است از ”Tile“ استفاده کنند تا "Scale".
پس از Ok کردن تغییرات، کادر گفتگوی تازهای باز میشود که از شما انتخاب نقشه جابهجا شونده را میخواهد. تصویر شیبداری را که پیش از این ساخته بودید، انتخاب کنید و نتیجه کار را ببینید.
اکنون میتوانید به تصویر شیبدار برگشته و سطوح شیبدار دیگری را روی آن آزمایش کنید تا نتیجه دلخواه خود را بهدست آورید.
منبع : نشریه تخصصی هنر و رایانه
سلام
افرادی هستند که مثل من علاقه زیادی به نواختن پیانو یا کیبرد دارند لذا قصد دارم هرچند وقت یکبار نت آهنگ های معرف رو برای دانلود تو وبلاگ بذارم
نت آهنگ Love Story برای نواختن با پیانو رو میتونید از اینجا دریافت کنید
فرمت : PDF
برنامه چند لایه چیست؟
در معماری چند لایه تمام برنامه به چندین بخش تقسیم می شود. این بخش ها می توانند فیزیکی یا منطقی باشند. هر بخش کار خاصی را انجام می دهد مثلا نمایش اینترفیس کاربر یا دسترسی به داده ها. برنامه می تواند به هر تعداد لایه داشته باشد ولی به هر حال بیشتر برنامه ها سه لایه مجزا دارند که عبارتند از :
همان طور که احتمالا حدس زده اید، لایه Presentation چیزی نیست به جز بخشی از نرم افزار که با کاربر برنامه شما ارتباط برقرار می کند ( اینترفیس برنامه شماست ) نمایش داده ها به کاربر نهایی و اجازه به آنان برای ارتباط داشتن با داده ها، اصلی ترین وظیفه این لایه است.
در بیشتر موارد داده هایی که توسط کاربر وارد می شوند نیاز به اعتبارسنجی یا پردازش اضافی دارند. این مسوولیت لایه Business Logic است.
در نهایت داده های برنامه شما نیاز به ذخیره و بازیابی از طریق یک انبار داده دارند ( مثلا سیستم مدیریت دیتابیس های رابطه ای یا RDBMS و یا XML , .. ) این وظیفه توسط لایه دسترسی به داده انجام می شود.
به طور خلاصه، فرآیند مورد نظر ما این گونه کار می کند:
- کاربر برای داده های برنامه درخواستی ارسال می کند.
- لایه Data Access داده های مورد نظر را بازیابی می کند و از طریق لایه Business Logic آن ها را به لایه نمایش می فرستد.بعضی مواقع لایه دسترسی به داده ها، این داده ها را مستقیما به لایه نمایش ارسال می کند.
- لایه نمایش اطلاعاتی که باید نمایش داده شوند را از طریق لایه Business Logic دریافت می کند.
- کاربر داده ها را تغییر می دهد و عمل مناسب در مورد آن ها را اجرا می کند ( مثل اضافه یا به روز کردن داده ها )
- لایه Business Logic صحت داده های وارد شده توسط کاربر را بررسی می کند ( داده ها را اعتبار سنجی می کند)
- اگر داده ها معتبر باشند آن ها را برای به روز رسانی در بانک اطلاعاتی به دست لایه دسترسی به داده می سپارد.
مزیت های برنامه های چند لایه
- برنامه ها به چند بخش منطقی جدا از هم تقسیم می شوند و اتصال میان UI ( رابط کاربری ) ، پردازش ها و بانک اطلاعاتی کم می شود.
- تغییر در بانک اطلاعاتی یا روال های دسترسی به داده ها تاثیری در لایه نمایش یا برنامه کلاینت نخواهد گذاشت.
- برنامه کلاینت با عبارات SQL آمیخته نخواهد شد.
- نام جداول و ستون ها به طور موثری از برنامه کلاینت حذف می شوند.
- برنامه کلاینت نمی فهمد که داده ها از کجا آمده اند ( چیزی که به آن location transparency گفته می شود )
- تغییر یا گسترش برنامه بسیار ساده تر خواهد شد، بدون نیاز به تغییر یا کامپایل مجدد برنامه کلاینت.
نکته منفی در معماری چند لایه این است که شما باید تعداد زیادی بخش ها و کلاس های از هم جدا در نرم افزار بسازید. اما به هر حال مزایای این روش بیشتر و برتر از معایب آن است.
انتخاب های لایه Presentation
دو انتخاب اصلی برای ساخت یک لایه نمایش در دات نت وجود دارد. آنها فرم های ویندوزی یا فرم های وبی ASP.NET هستند.
با استفاده از ویندوز فرم ها شما می توانید برنامه های دسکتاپ فرم محور ( form base ) معمول را بسازید. برنامه های ویندوز فرمی می توانند المان های رابط کاربری بسیار غنی به کاربر پیشنهاد کنند.آن ها کم و بیش شبیه به فرم های ویژوال بیسیک هستند.
جذاب ترین گزینه برای توسعه لایه نمایش استفاده از وب فرم های ASP.NET است. کنترل هایی مثل دیتاگرید، دیتالیست و تقویم ( Calendar ) یک رابط کاربری قدرتمند را با مقدار کمی کد فراهم می کنند.
انتخاب هایی که در بالا برای ساخت یک لایه نمایش بررسی کردیم می توانند توسط زبان های مختلفی مثل سی شارپ یا ویژوال بیسیک دات نت پیاده سازی شوند.
انتخاب های لایه Business Logic
لایه Business logic از چندین بخش که کارهایی نظیر اعتبار سنجی کار، گردش کار یا کارهای مشابه را انجام می دهند تشکیل شده است.
کامپوننت های دات نت این لایه را شکل می دهند. شما می توانید با interop از کامپوننت های COM استفاده کنید ولی این کار کارآیی را پایین خواهد آورد.
وب سرویس های ASP.NET هم می توانند به عنوان یک business logic عمل کنند. اما به هر حال آن ها را نمی توان در همه شرایط به عنوان جایگزین کامپوننت ها به کار برد. وب سرویس ها تنها زمانی قابل استفاده خواهند بود که اعتبار سنجی در جایی بیرون از شبکه شما اتفاق افتاده باشد.
کامپوننت هایی که شما توسعه می دهید به ماندن روی ماشین های مشابه نیازی ندارند. با استفاده از .NET Remoting شما می توانید آن ها را روی چندین ماشین توزیع کنید.
انتخاب های لایه Data Access
این لایه با دستکاری داده ها مثل اضافه ، حذف و به روز رسانی آن ها سر و کار دارد. داده هایی که به آن ها اشاره کردیم می توانند در RDBMS یا XML قرار داشته باشند. شما باید لایه دسترسی به داده را چنان طراحی کنید که دیگر لایه ها نیازی به دانستن وضعیت انبار داده ها نداشته باشند.
ADO.NET فناوری دسترسی به داده تحت دات نت است. اگر چه ADO.NET از طریق کلاس های DataReader اجازه دسترسی به داده های در هنگام اتصال را می دهد ولی بیشترین تمرکز روی دسترسی به داده ها در زمان متصل نبودن است. دیتاست نقش کلیدی را در این مورد بازی می کند. در بعضی موارد شما می توانید ADO را هم برای دسترسی به داده ها استفاده کنید ولی استفاده از آن باید دلیل معتبری داشته باشد. از ADO استفاده نکنید فقط به خاطر اینکه RecordSet ها را دوست دارید !
این جا هم کامپوننت های دات نت لایه را تشکیل می دهند. همان طور که قبلا گفته شد شما می توانید از کامپوننت های کلاسیک COM هم استفاده کنید.
همچنین وب سرویس ها هم می توانند لایه دسترسی به داده را شکل دهند. این مخصوصا زمانی درست است که دیتابیس شما فراهم کننده ( provider ) داده ندارد. در این گونه موارد شما می توانید مقداری کد برای اتصال به داده ها و پر کردن دیتاست ها و بازگرداندن نتایج درون دیتاست به درخواست کننده داده بنویسید.
علاوه بر ADO.NET شما می توانید از امکانات سیستم مدیریت دیتابیس خود مثل توابع و یا روال های ذخیره شده ( Stored Procedures ) استفاده کنید.
ارسال داده از یک لایه به لایه دیگر
در تمام موارد به ارسال اطلاعات از یک لایه به لایه دیگر نیاز است، به طور معمول برنامه نویسان از رشته ها ، آرایه ها ، رکوردست های غیرمتصل برای رسیدن به این هدف استفاده می کنند. در دات نت ، دیتاست ها یک راه فوق العاده برای انتقال اطلاعات میان لایه ها فراهم می کنند. شما حتی می توانید با برنامه نویسی یک دیتاست بسازید و آن را با داده های خودتان پر کنید. اگر اشیا را خیلی دوست دارید می توانید از Typed DataSets استفاده کنید که در واقع کلاسی مشتق شده از کلاس دیتاست است که جداول و سطرها را به شکل یک شی معرفی می کند.
منبع : Digital Life
تغییر مبنای یک عدد از مبنای هشت به Integer
function OctToInt(Value: string): Longint;
var
i: Integer;
int: Integer;
begin
int := 0;
for i := 1 to Length(Value) do
begin
int := int * 8 + StrToInt(Copy(Value, i, 1));
end;
Result := int;
end;
تغییر مبنای یک عدد Integer به مبنای هشت
function IntToOct(Value: Longint; digits: Integer): string;
var
rest: Longint;
oct: string;
i: Integer;
begin
oct := '';
while Value <> 0 do
begin
rest := Value mod 8;
Value := Value div 8;
oct := IntToStr(rest) + oct;
end;
for i := Length(oct) + 1 to digits do
oct := '0' + oct;
Result := oct;
end;
تبدیل یک عدد هگزادسیمال به باینری
function HexToBin(Hexadecimal: string): string;
const
BCD: array [0..15] of string = ('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111','1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111');
var
i: integer;
begin
for i := Length(Hexadecimal) downto 1 do
Result := BCD[StrToInt('$' + Hexadecimal[i])] + Result;
end;