2008-09-03 38 views
5

Tôi đang chụp dữ liệu từ máy tính bảng bằng Java (đá thư viện JPen) và muốn có thể vẽ một nét bút theo cách tự nhiên hơn.Làm thế nào tôi có thể vẽ một đường cong thay đổi độ dày dọc theo đường đi của nó?

Hiện tại tôi đang vẽ nét bút làm phân đoạn đường thẳng, mỗi đoạn có độ dày nét khác nhau.

Phải có thứ gì đó trong Thư viện đồ họa của Java cho phép tôi thực hiện điều này hiệu quả hơn.

Phải không?

Trả lời

0

RPC PostScript thường chuyển đổi các vòng tròn thành đường cong và đường cong thành một loạt các phân đoạn đường thẳng. Số lượng phân đoạn phụ thuộc vào cài đặt độ phẳng mặc định cho một phân đoạn phù hợp với độ phân giải màn hình raster.

Một đường dày hoặc đoạn đường dày có thể được chuyển đổi thành đa giác chứa đầy gầy.

1

Tôi chưa bao giờ làm điều này, nhưng đây là một vài điều bạn có thể thử. Đầu tiên, bạn có thể thực hiện một tùy chỉnh Stroke tạo ra hình thang gầy. Chiều rộng của mũ kết thúc sẽ là một hàm của áp suất tại điểm kết thúc. Nếu điều đó có hiệu quả, bạn có thể cố gắng làm cho các đoạn thẳng trông tự nhiên hơn bằng cách sử dụng Bezier curves để tạo thành "hình thang cong". Bạn có thể sử dụng QuadCurve2D để trợ giúp.

1

Có một giải pháp tổng quát hơn có sẵn ít nhất. Tính năng này đã được thêm vào Inkscape dựa trên recent algorithm. Bạn có thể thấy nó được áp dụng trực tiếp cho vấn đề của mình trong some screenshots. Nó có thể extrude bất kỳ bàn chải hình dạng dọc theo con đường để bắt chước một cọ vẽ ví dụ, nhưng bạn sẽ phải chuyển nó sang Java từ thuật toán trong liên kết đầu tiên hoặc từ các nguồn Inkscape. Ngoài ra, nó được bao phủ bởi các bằng sáng chế, do đó bạn phải giải phóng mã của bạn theo GPL (tác giả cho phép rõ ràng) hoặc mua giấy phép bằng sáng chế.

Các vấn đề liên quan