| 3 | Source code chương trình chụp ảnh toàn bộ trang WebSử dụng một WebBrowser control để nạp trang web, bạn có thể chụp được ảnh màn hình dựa vào kích thước của tài liệu trong WebBrowser thông qua phương thức Graphics.CopyFromScreen(). Tuy nhiên, WebBrowser đã hỗ trợ sẵn phương thức DrawToBitmap() giúp bạn làm việc này. Download demo + sourcecode (16KB) Pass giải nén: hoidapit.com.vn Screenshot: Phương pháp chụp hình trang web này dựa vào việc tạo một WebBrowser và phóng to cửa sổ để hiển thị toàn bộ trang web. Sau đó ta sẽ dùng phương thức DrawToBitmap() để lưu ảnh vào một Bitmap. Để đảm bảo việc chụp ảnh trang web chỉ diễn ra một lần, ta cần làm công việc này trong sự kiện WebBrowser.DocumentCompleted, và sử dụng thêm property WebBrowser.ReadyStateđể kiểm tra việc nạp xong trang web. Chụp ảnhPhương thức CaptureWebPage() sau cung cấp thêm việc hiển thị tiến trình làm việc của WebBrowser thông qua một progressBar1:
Thay đổi kích thước ảnhVì việc resize sẽ làm thay đổi ảnh nên cần sử dụng một đối tượng Bitmap (thành viên của lớp) để lưu lại ảnh ban đầu. Ví dụ sau sử dụng một NumericUpDown cho phép người dùng thay đổi kích thước theo phần trăm, từ đó tính ra kích thước mới (width x height):
Lưu ảnh
|
Diễn đàn sinh viên công nghệ thông tin, chia sẻ, giao lưu, học hỏi. Kết nối ... Những ngôn ngữ cơ bản mà bạn cần phải nắm nếu muốn thành 1 lập trình viên ...VuaTenMien.Com
Hiển thị các bài đăng có nhãn Code Game. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Code Game. Hiển thị tất cả bài đăng
Thứ Ba, 16 tháng 12, 2014
Source code chương trình chụp ảnh toàn bộ trang Web (Webpage capture)
Source code chương trình minh họa việc biểu diễn đồ thị bằng GDI+
Source code chương trình minh họa việc biểu diễn đồ thị bằng GDI+
Đây là chương trình nhằm mục đích minh họa cho việc biểu diễn và cài đặt các thuật toán liên quan đến đồ thị thông qua thuật toán Floyd. Bạn có thể dùng chuột để vẽ và di chuyển các node của đồ thị, khoảng cách giữa hai node cũng như ma trận kề (adjacency matrix) của đồ thị sẽ được tính toán và tự động thay đổi theo.Chương trình này cũng là một ví dụ đơn giản về cách vẽ, di chuyển và thay đổi kích thước các control bằng chuột trong quá trình runtime. Các đối tượng trong form hầu hết là control, bạn có thể thay thế hoàn toàn bằng GDI+ nhưng công việc xử lý sẽ tốn kém hơn.
Các công cụ vẽ bao gồm (trong Toolbox):
Mô tả 1 số chức năng có trong chương trình:
- Hỗ trợ đồ thị vô hướng và có hướng
- Chức năng xóa node, edge
- Không cho phép di chuyển node ra ngoài khung nhìn
- Hiệu ứng di chuyển trên đường đi ngắn nhất giữa 2 đỉnh.
- Hiển thị đường đi ngắn nhất (gián tiếp) trên ma trận kề.
- Lưu trạng thái của chương trình sau khi thoát.
- Cố định tốc độ di chuyển của bóng dẫn đường (bug).
- Cho phép chọn (edge tool), xoá cạnh (eraser tool).Download sourcecode + demo
Pass giải nén: hoidapit.com.vn
Tìm đường đi ngắn nhất với Breadth First Search trong C#
Tìm đường đi ngắn nhất với Breadth First Search trong C# - Source code Wumpus GameTìm đường đi ngắn nhất là một trong những bài toán được ứng dụng trong nhiều lĩnh vực. Và một thuật toán cơ bản và đơn giản nhất để làm điều này mà bạn có thể đã biết là Breadth First Search (BFS – Tìm kiếm theo chiều rộng). Cơ chế làm việc của thuật toán tương tự như vết dầu loang, tìm kiếm những điểm gần nhất trước. Bạn có thể thấy một vài game sử dụng bản đồ hay liên quan đến AI cũng có thể sử dụng thuật toán này. Một ví dụ bạn có thể áp dụng thuật toán này là n-puzzle mà tôi đã cài đặt bằng thuật toán A* để giải quyết. Download sourcecode + demo (VC# 2010) Pass giải nén: hoidapit.com.vn Giới thiệuWumpus là một game điển hình được giải bằng cách sử dụng AI và logic. Tuy nhiên vì đây là chỉ là mình họa đơn giản cho thuật toán Breadth First Search nên ta không cần quan tâm tới phần các phần biểu diễn và suy luận logic trong chương trình. Dựa vào mục đích trên, tôi sẽ thiệu vài nét cơ bản về game Wumpus. Đây là một game đơn giản có dạng bản đồ bao gồm các đối tượng Agent (nhân vật chính), Pit (hố), Wumpus (một loại quái vật) và Gold (rương vàng). Giải thuật tổng quátTrong giải thuật này ta cần định nghĩa các thành phần sau:
Ta thấy rằng G(n) dựa vào tập Close để kiểm tra các vị trí có cần được kiểm tra hay không. Nếu bạn cài đặt hai tập này bằng một collection thì tốc độ thực thi sẽ tương đối chậm vì phải thực hiện tìm kiếm phần tử trong danh sách. Do ví dụ của ta có dạng bản đồ nên thay vì dùng collection, ta sẽ sử dụng mảng hai chiều để có thể truy xuất trực tiếp đến một phần tử dựa vào vị trí. Khi đó ta có thể kiểm tra thuộc tính của phần tử xem nó đã được duyệt chưa. Mỗi ô vuông đơn vị trong bản đồ được tôi sử dụng một đối tượng Square sau để biểu diễn. Giá trị của property State của Square cho ta biết chính xác ô đó chứa thứ gì. Thuộc tính Marked chỉ được dùng để đánh dấu làm nổi bật đường đi khi ta tìm thấy đường.Các lớp cơ bản
Phần vẽ bản đồ đơn giản là ta tạo một mảng Square rồi random đặt các trạng thái Wumpus, Pit, Gold. Sau cùng dùng sự kiện OnPaint() để hiển thị lên màn hình. Lớp BreadthFirstSearch hiện thực đoạn mã giả ở phần trên bằng C#. Contructor của lớp này nhận một mảng 2 chiều Square để tạo nên mảng MyPoint. Các ô có giá trị là Wumpus hoặc Pit sẽ không được tạo và sẽ mang giá trị mặc định là null.
Lớp MyPoint được định nghĩa như sau:
Tôi sử dụng biến Previous để lưu vị trí của phần tử trước đó, như vậy khi tìm được đích, ta sẽ dựa vào giá trị này để lần ngược lại đường đi từ vị trí xuất phát đến đích. Bạn có thể thấy phương thức GetSolution() trong lớp BreadthFirstSearch thực hiện điều này như thế nào. Phần kết |
Đăng ký:
Bài đăng (Atom)
Bài đăng phổ biến
-
import java.io.*; public class Test_Tng{ public static void main(String args[]){ InputStream is = System.in; ...
-
import java.io.*; public class ReadLine{ public static void main(String args[]){ InputStreamReader isr = new InputStreamReader...
-
import java.io.*; public class Gptb2{ public static void main(String args[]){ InputStreamReader isr = new InputStream...
-
import java.io.*; public class Test_Ngto{ public static void main(String args[]){ InputStream is = System.in; ...
-
<%@ Page Language="VB" Debug="true" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespa...
-
<html> <head><script LANGUAGE="JavaScript"> function a_plus_b(form) { a=eval(form.a.value) ...
-
1. Hãy xây dựng lớp Diem cùng với các đối tượng điểm trong mặt phẳng và các phương thức sau: - Phương thức khởi tạo - Phương...
-
<html> <head> <title>Giai phuong trinh bac 2</title> <script language="JavaScript"> function giai(fo...
-
Vacationnews.Xyz Vacationsnews.Xyz Vacationsworld.Xyz Vantagecreditunion.Xyz Venturenews.Xyz Ventureworld.Xyz Vermontattorney.Xyz Vermontho...
-
<%@ Page Language="VB" Debug="true" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespa...





