Biểu diễn dữ liệu kiểu dệt, màu:
Kiểu dệt được gán bằng một đối tượng KieuDet-Mau có các thuộc tính: - Tên kiểu dệt (String)
- Hình vẽ kiểu dệt (Array) có kích thước là kích thước rapo kiểu dệt (chu kỳ kiểu dệt). Mỗi phần tử mảng có giá trị (Kiểu dệt - Màu):
+ Kiểu dệt có các giá trị - Vòng dệt phải: - Vòng dệt trái: - Vòng không dệt: - Vòng chập: - Vòng chuyển trái: - Vòng chuyển phải:
Các kiểu dệt dùng cho thiết kế dạng Sản phẩm:
- Vòng thêm - Vòng khoá trái - Vòng khoá phải. Hình 2.5: Ký hiệu các kiểu dệt
+ Màu : Màu được diễn trong không gian màu RGB
Các công cụ chính thiết kế kiểu dệt, màu, hoa văn: - Vẽ kiểu dệt, màu lên hình vẽ kiểu dệt
Vẽ kiểu dệt, màu lên hình vẽ kiểu dệt:
Công cụ này khá đơn giản, chỉ việc chọn kiểu dệt, màu và xác định toạ độ (click chuột) và thay thế phần tử mảng kiểu dệt bắng dữ liệu vừa chọn
Hình 2.6: Hình vẽ kiểu dệt có các kiểu dệt phối hợp
Thiết kế hoa văn
* Nội dungcông việc :
- Tải hoa văn từ ứng dụng khác, sửa đổi, chuyển hoa văn thành hình vẽ kiểu dệt. - Công cụ vẽ hoa văn, sửa hoa văn.
* Phương pháp xây dựng:
- Sử dụng đối tượng Picture box để thể hiện hình vẽ hoa văn
* Các bước xây dựng:
- Tạo công cụ vẽ hoa văn, nhập sửa hoa văn trực tiếp: Ta có thể nhập sửa hoa văn trực tiếp trên hình vẽ theo màu hay kiểu dệt. Mỗi khi nhấn nút phải chuột, vòng sợi có màu, kiểu dệt chọn được vẽ tại toạ độ nhấn chuột. Ở đây sử dụng sự kiện (event) MouseDown để gọi thủ tục vẽ vòng sợi theo màu, kiểu dệt và cập nhật dữ liệu vào cơ sở dữ liệu, thủ tục như sau:
Private Sub Pk_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) CapNhatDuLieuVongsoi(mau, kieudet,vitri)
Vẽ kí hiệu vòng sợi trên hình vẽ kiểu dệt Vẽ lại vòng sợi trên hình ảnh vải
Hình 2.7: Hoa văn trên hình vẽ kiểu dệt và hình mô phỏng
- Nhập hoa văn từ các ứng dụng khác của windows
Khi ta đã có mẫu hoa văn từ các ứng dụng khác của windows, tải hình vẽ vào phần mềm. Ví dụ: Cần dệt hoa văn trên sản phẩm được vẽ như sau:
Bước 1: Chuyển hình vẽ vào phần mềm (từ file ảnh logo.bmp)
Hình 2.8 - Hoa văn cần dệt từ file ảnh
Bước 2: Chuyển hình vẽ sang dạng ô lưới: kẻ ô lưới theo kích thước ảnh và kích thước vòng sợi.
Gọi x và y là kích thước hoa văn (đơn vị pixel) X và Y là kích thước hoa văn cần dệt trên vải (cm) Mc, Mh là mật độ cột và mật độ hàng vòng
c là số cột rapo, h là số hàng rapo
Ox, Oy là kích thước ô (pixel) tương ứng với 1 vòng dệt. Ta có
c=X * Mc ; h = Y * Mh Ox = x / c = x / Mc / X ; Oy = y / h = y / Mh / Y
Hình 2.9: Hình vẽ hoa văn được kẻ ô lưới
- Chuyển hoa văn sang kiểu dệt: Tính màu trung bình của mỗi ô, so sánh màu mỗi ô với màu của bảng màu. Màu nào của bảng màu gần với màu của ô thì sẽ được gán cho màu của ô. Việc so sánh được tính trong hệ toạ độ màu RGB. Mỗi màu của bảng màu sẽ là một điểm trong hệ toạ độ, màu ta cần gán cho ô có khoảng cách với màu của ô là gần nhất. Nếu gọi B(r1,g1,b1) là màu của bảng màu, màu của ô là M(r2,g2,b2), khoảng cách
2 màu trong hệ toạ độ là d= 2 2 2)
) 1 2 ( ) 1 2 ( ) 1 2
(r r g g b b có giá trị nhỏ nhất (hai màu gần nhất). Kết quả tính toán cho ta một hình vẽ kiểu dệt đã được điền màu:
Hình 2.10: Hoa văn đã được chuyển thành kiểu dệt
Công cụ tiếp theo là điền mỗi màu của hoa văn bằng kiểu dệt được chọn.
Phương pháp phân tích màu và công thức được cài trong phần mềm và được phần mềm tính tự động, khi chạy phần mềm, ta chỉ tải hình vẽ, nhập kích thước ô là có được kết quả.
Hình 2.11: Hình ảnh mô phỏng vải được thiết kế từ file ảnh
Phương pháp thiết kế màu sắc
Màu đồ hoạ vi tính dùng hệ màu RGB, màu trong sản xuất vải thường dùng hệ màu Lab. Vì vậy trong phần mềm cần cài đặt các công thức chuyển đổi.
Công thức chuyển đổi giữa không gian màu RGB và không gian màu XYZ[15] X= 049R +0,31G +0,2B Y= 0,17697R +0,8124G +0,01063B Z= 0 + 0,01G +099B R= 2,364614X - 0,896541Y - 0,468073Z G= -0,515166X + 1,426408Y +0,088758Z B= 0,005204X - 0,014408Y + 1,009204Z Công thức chuyển đổi từ không gian màu XYZ sang không gian màu Lab
16) ) ( 116 n Y Y f L ; 500 ( ) ( ) n n Y Y f X X f a ; 200 ( ) ( ) n n Z Z f Y Y f b [15] Trong đó 3 2 3 3 / 1 29 6 29 4 6 29 3 1 29 6 ) ( t khi t t khi t t f [15]
Công thức chuyển đổi từ không gian màu Lab sang không gian màu XYZ
; ;
Nếu thì ngược lại
Nếu thì ngược lại
Hình 2.12: Hình chỉnh màu và đặt tên màu
Thay đổi tên màu: thay đổi tên màu khá đơn giản, ta chỉ việc sử dụng Textbox để nhập
lại tên màu.
Màu sắc trong thiết kế vải đòi hỏi sự chính xác cao, vì vậy phần mềm tạo công cụ chọn màu với độ vi chỉnh màu nhỏ
Hình 2.13: Công cụ chỉnh màu 24bit
Công cụ chỉnh màu có các thông số màu trong các hệ màu RGB, HSL và hệ màu Lab (hệ màu thường dùng trong ngành dệt)
Trên công cụ tạo màu 24 bit có các nút vi chỉnh sử dụng khi cần chỉnh màu với sự sai khác nhỏ (1/256 của mỗi màu thành phần RGB)
Tạo lập ngân hàng màu:
Trong sản xuất vải dệt, nếu mỗi lần sản xuất, các nhà xản xuất tạo màu bất kỳ, như thế sẽ khó khăn trong việc quản lý, giao dịch màu. Để giải quyết khó khăn này, các nhà sản xuất vải thường sử dụng bộ mẫu màu Pantone TPX. Pantone TPX là bộ mẫu màu sử dụng trong ngành dệt do Pantone Inc phát hành. Pantone Inc là một công ty có trụ sở tại Carlstadt, New Jersey, Hoa Kỳ (thành lập năm 1962. Pantone đã được mua lại bởi X-Rite tháng 10 năm 2007).
Sử dụng ngân hàng màu điện thử đem lại nhiều tiện ích:
- Triển khai sản xuất màu thuận tiện: Ứng với mỗi màu của Pantone TPX đã được chọn trong thiết kế ta có mẫu màu thực (bộ màu Pantone TPX) tiện cho việc triển khai nhuộm thay vì phải so với màu trên màn hình vi tính.
- Giao dịch màu sắc thuận tiện: Giao dịch màu sắc theo bộ màu được qui ước chuẩn thuận tiện hơn với việc giao dịch một màu thiết kế mới. Hiện nay khách hàng có xu thế sử dụng màu theo Pantone màu, đặc biệt với khách hàng nước ngoài hay dùng. Giao dịch màu sắc thuận tiện khi màu được số hoá, qui ước chuẩn. Có thể giao dịch màu từ xa thông qua internet. Khách hàng và nhà sản xuất chỉ cần giao dịch màu thông qua mã màu là đủ.
- Thuận tiên trong việc quản lý màu, quản lý thiết kế: Sử dụng thư viện màu là sử dụng một bộ màu đã được qui ước chuẩn. Việc tìm kiếm, sử dụng, so sánh màu được thuận tiện.
- Thuận tiện trong việc ứng dụng tin học tính toán ghép màu bắng số hoá.
- Thiết kế màu thuận tiện, thay vì việc phối màu, tạo màu mới, ta có sẵn một bộ màu được qui chuẩn và chỉ việc lựa chọn ra để sử dụng;
Ngân hàng đã được tạo lập và chứa 1925 màu dựa trên patone màu TPX, ngân hàng màu được số hoá trong không gian màu CIE RGB và CIE Lab
các vòng sợi xét về mặt hình học. Hình ảnh mô phỏng cần đạt được các yêu cầu: vị trí vòng sợi, độ to nhỏ sợi, màu sợi, kiểu liên kết các vòng sợi giống như vải được phóng to để người thiết kế thấy rõ cấu trúc vải.
Bài toán: Từ dữ liệu một thiết kế vải - Mảng kiểu dệt, vẽ cấu trúc hình học vải. Ý tưởng giải quyết bài toán mô phỏng cấu trúc hình học vải:
Bước 1: Vẽ cấu trúc vòng sợi: Chia vòng sợi thành các phần tử hình học: cung tròn, đoạn thẳng. Biểu diễn các phần tử hình học bằng các hàm (có các tham số: toạ độ, độ nhỏ sợi, bán kính vòng sợi, góc vẽ, độ dài đoạn thẳng...)
Bước 2: Vẽ liên kết các vòng sợi: Dựa kiểu dệt của các vòng sợi liền kề, biến đổi cách vẽ để tạo vòng sợi mới sao cho đúng với kết cấu đan kết dệt kim.
Bước 3: Vẽ tổng thể mẫu vải có hiệu ứng không gian: Phân tích, sắp xếp các phần tử mỗi vòng sợi thành các nét khuất, nét nhìn thấy. Sắp xếp các phần tử mỗi vòng sợi trên các lớp vẽ. Xếp chồng các lớp vẽ theo thứ tự ta thu được hình mô phỏng cấu trúc vải.
Mô tả thuật toán mô phỏng cấu trúc hình học vải:
- Dữ liệu vào: Dữ liệu mảng kiểu dệt. - Dữ liệu ra: Hình vẽ mô phỏng cấu trúc vải. - Các bước thực hiện:
Bước 1: Vẽ cấu trúc vòng sợi Bước 2: Vẽ liên kết các vòng sợi
Bước 3: Vẽ tổng thể mẫu vải có hiệu ứng không gian
Bước 1: Vẽ cấu trúc vòng sợi
Mục đích: Vẽ vòng sợi đúng với kích thước hình học.
Ý tưởng vẽ cấu trúc vòng sợi: Chia vòng sợi thành các thành phần hình học: cung kim, trụ vòng, chân cung. Vẽ từng phần các thành phần hình học để tạo thành một vòng sợi.
Hình 2.15: Hình vẽ mô phỏng các thành phần vòng sợi
Việc phân chia vòng sợi thành 3 thành phần nhằm mục đích
- Thuận tiện cho việc vẽ. Phân chia vòng dệt thành các phần hình học cơ bản. Cung kim là 1/2 vòng tròn. Trụ vòng là đoạn thẳng. Chân cung là 1/4 vòng tròn.
- Thuận tiện cho việc tích hợp các vòng sợi thành hình vẽ tổng thể. Mỗi vòng sợi không vẽ cùng một lúc mà vẽ từng thành phần vòng sợi theo thứ tự khác nhau để tạo nét khuất, nét nhìn thấy. Nếu hoàn thành vẽ từng vòng sợi một thì vòng sợi vẽ sau sẽ đè lên vòng sợi vẽ trước và sẽ không tạo được hình ảnh có hiệu ứng không gian.
Để tạo hiệu ứng không gian mỗi thành phần được vẽ: các điểm giữa thân sợi có màu sáng, các điểm nằm biên sợi có màu sẫm, các điểm còn lại có màu trung bình. Kỹ thuật là vẽ lần lượt 3 nét vẽ có độ sáng dần, nét vẽ nhỏ dần xếp chồng lên nhau.
Hình 2.16: Hình vẽ mô phỏng thân sợi bằng các nét vẽ đậm nhạt
Trụ vòng Cung kim Chân cung Nét vẽ màu đậm Nét vẽ màu trung bình Nét vẽ màu sáng
V.KieuDet (i,j) là kiểu dệt của vòng dệt tại cột i và hàng j, n và m là kích thước mảng.
V.Mau(i,j ): màu của vòng sợi Gọi, x, y là toạ độ vòng sợi A : bước cột vòng
B: bước hàng vòng pi : số pi bằng 3.14 d : đường kính sợi
P: đối tượng Picture box để vẽ hình ảnh vải.
delL: hệ số độ đậm nhạt (Lum trong không gian màu HSL) của điểm ảnh để vẽ hiệu ứng không gian. Lựa chọn delL theo phương pháp lựa chọn chuyên gia delL=30.
Đường kính sợi tính theo công thức: d =
Nm k
; trong đó k là hệ số phụ thuộc vào nguyên liệu (với cotton khoảng 1,25), Nm là chi số sợi.
Các đơn vị khoảng cách, toạ độ được tính bằng pixel. Các thông số vải có đơn vị là cm. Công thức chuyển đổi từ C (cm) sang E (pixel): E=q*C (q là mật độ pixel /cm của màn hình, với màn hình 14'' độ phân giải 1366x768 thì q=38)
Vẽ cung kim, chân cung
x = i * A y = j * B
BanKinh = (A/2 + d)/2
P.DrawWidth =d (độ to nét vẽ bằng đường kính sợi) Lệnh vẽ cung kim:
MauVe=Mau(i,j)
Vẽ cung kim đậm nét to bằng đường kính sợi
MauVe.L=Mau(i,j).L - delL P.DrawWidth = d
P.Circle (x, y), BanKinh, MauVe, 0, pi,
Vẽ cung kim màu trung bình nét trung bình
MauVe.L=Mau(i,j).L P.DrawWidth = d*2/3
P.Circle (x, y), BanKinh, Mau(i,j), 0, pi,
Vẽ cung kim màu sáng nét nhỏ
MauVe.L=Mau(i,j).L+ delL P.DrawWidth = d/3
P.Circle (x, y), BanKinh, MauVe, 0, pi,
Vẽ chân cung trái:
MauVe.L=Mau(i,j).L - delL P.DrawWidth = d
P.Circle (x-A/2, y+B), BanKinh, MauVe, 3*pi/2, 2*pi
MauVe.L=Mau(i,j).L P.DrawWidth = d*2/3
P.Circle (x-A/2, y+B), BanKinh, MauVe, 3*pi/2, 2*pi
MauVe.L=Mau(i,j).L + delL P.DrawWidth = d/3
P.Circle (x-A/2, y+B), BanKinh, MauVe, 3*pi/2, 2*pi
Vẽ chân cung phải:
MauVe.L=Mau(i,j).L - delL P.DrawWidth = d
P.Circle (x+A/2, y+B), BanKinh, MauVe, pi, 3*pi/2
MauVe.L=Mau(i,j).L P.DrawWidth = d*2/3
P.Circle (x+A/2, y+B), BanKinh, MauVe, pi, 3*pi/2
MauVe.L=Mau(i,j).L + delL P.DrawWidth = d/3
P.Circle (x+A/2, y+B), BanKinh, MauVe, pi, 3*pi/2
Vẽ trụ vòng:
Gọi x1,y1,x2,y2 là các toạ độ vẽ điểm đầu và điểm cuối trụ vòng trái, Gọi x3,y3,x4,y4 là các toạ độ vẽ điểm đầu và điểm cuối trụ vòng phải,
Vẽ trụ vòng trái
x1 = x - BanKinh y1 = y
P.DrawWidth = d
P.Line (x1,y1)-(x2,y2), MauVe
MauVe.L=Mau(i,j).L P.DrawWidth = d*2/3
P.Line (x1,y1)-(x2,y2), MauVe
MauVe.L=Mau(i,j).L + delL P.DrawWidth = d./3
P.Line (x1,y1)-(x2,y2), MauVe
Vẽ trụ vòng phải x3 = x + BanKinh y3 = y x4 = x + d y4 = y - B MauVe.L=Mau(i,j).L - delL P.DrawWidth = d
P.Line (x3,y3)-(x4,y4), Mau(j,i)
MauVe.L=Mau(i,j).L P.DrawWidth = d*2/3
P.Line (x3,y3)-(x4,y4), Mau(j,i)
MauVe.L=Mau(i,j).L + delL P.DrawWidth = d/3
P.Line (x3,y3)-(x4,y4), Mau(j,i)
Bước 2: Vẽ liên kết các vòng sợi
Mục đích: Vẽ liên kết các vòng sợi đúng với công nghệ dệt kim.
- Xét trường hợp các vòng sợi kiền kề, xác định lại vị trí, hình dáng các thành phần hình học vòng sợi để hình ảnh đúng với kiên kết vòng sợi trong dệt kim.
Tuỳ theo kiểu vòng sợi lân cận mà vòng sợi đang vẽ có các thành phần của vòng sợi có sự biến đổi về toạ đọ vẽ và hình dáng. Trong đó cung kim và chân vòng giữ nguyên hình dáng và chỉ thay đổi toạ độ vẽ. Trụ vòng sẽ thay đổi toạ độ điểm đầu và điểm cuối. Trụ vòng có thể thẳng đứng, chéo, kéo dài ra...
Để vẽ đúng được sự liên kết các vòng sợi theo qui luật của dệt kim, cần chuyển tải nguyên lý công nghệ dệt kim vào phần mềm.Giải pháp là sử dụng các câu lệnh điều kiện rẽ nhánh xét dữ liệu vòng sợi tại vị trí vẽ và dữ liệu vòng sợi tại các vị trí lân cận:.
Ví dụ: cùng là vòng dệt phải nhưng có liên kết với các vòng dệt liền kề khác nhau tuỳ vào kiểu dệt các vòng dệt liền kề.
Vòng dệt phải khi các kiểu dệt liền kề cũng là vòng dệt phải thì được vẽ như sau:
Hình 2.17: Kiểu dệt và hình mô phỏng vòng dệt phải với các vòng lân cận là vòng dệt phải
Khi vòng dệt kế tiếp trên cùng cột là vòng không dệt, vòng dệt phải cần vẽ được kéo dài tới hàng kế tiếp:
Hình 2.18: Kiểu dệt và hình mô phỏng vòng dệt phải với vòng dệt tiếp theo cùng cột là vòng không dệt
Khi vòng dệt liền trước trên cùng cột là vòng chuyển, vòng dệt phải được vẽ với chân vòng hở (chân vòng hở chỉ là một điểm kết nối chân vòng của vòng sợi trước và trụ vòng của vòng dệt đang vẽ)
Hình 2.19: Kiểu dệt và hình mô phỏng vòng dệt phải với vòng dệt trước đó cùng cột là vòng chuyển phải
bước vòng.
Hình 2.20: Kiểu dệt và hình mô phỏng vòng dệt phải với vòng dệt trước đó cùng cột và vòng dệt kề trái là vòng không dệt
Cài đặt bước 2: Vẽ liên kết các vòng sợi For j=1 to m
For i=1 to n
Select Case V.KieuDet (i,j) Case VongDetPhai
If V.KieuDet(i,j+1)= vòng không dệt Vẽ cung kim tại vị trí j+1
Else
Vẽ cung kim tại vị trí j End if
If V.KieuDet(i,j-1)= vòng chuyển Vẽ trụ vòng thẳng đứng
ElseIf (V(i,j-1)= vòng không dệt) and (V(i-1,j)= vòng không dệt) Vẽ chân vòng hở
Vẽ trụ vòng trái lệch trái 1 trụ vòng , trụ vòng phải thẳng Else