Tôi đang tạo một dịch vụ web nhằm mục đích mô phỏng cách các mạch điện tử hoạt động. project thậm chí không ở trong giai đoạn Alpha.Thuật toán kết nối thành phần sơ đồ cIrcuit điện tử
Tôi bị mắc kẹt với một số mốc quan trọng của dự án: khi một cố gắng kết nối chốt của một thành phần với một số pin khác - đường kết nối sẽ được tạo.
Trước hết, đường kết nối chỉ là một đường thẳng, không có cách nào thay đổi nó.
Sau đó, nó trở nên bằng cách nào đó uốn cong phù hợp với khả năng thêm, di chuyển và xóa điểm, trong đó xác định cách dòng được uốn cong.
Và bây giờ nó (dòng kết nối) được tạo ra bằng cách sử dụng A * thuật toán.
Việc thực hiện không tốt, vì vậy chỉnh sửa A * dòng kết nối -generated không phải là một ý tưởng tốt, vì nó không thành công rất nhiều.
Ý tưởng cho các thuật toán tạo dòng kết nối chỉ là như sau:
xác định bắt đầu và cuối điểm
tìm một con đường giữa bắt đầu và cuối, không chồng lên bất kỳ hộp giới hạn nào của thành phần hiện tại '
tạo ra một tập hợp các điểm cơ sở - một danh sách các tọa độ, nhận được từ bướC# 2 + bắt đầu tại đống + cuối ở đuôi
tạo ra một tập hợp các dòng mà sẽ tạo thành một dòng kết nối:
for (var i = 1; i < points.length; i++) { var p0 = points[i - 1], p1 = points[i], line = MooChip.paper.path(Raphael.format('M%1,%2L%3,%4', p0.x, p0.y, p1.x, p1.y)); }
vấn đề là đường kết nối có thể chồng chéo lên nhau, trong khi họ phải cắt chỉ ... Vâng, thực sự t đây là một vấn đề khác: tôi thậm chí không thể tưởng tượng như thế nào người ta có thể thực hiện kết nối đường dây kết nối, như ở đây, hình ảnh phía dưới bên trái:
Câu hỏi đặt ra là: làm thế nào tôi nên xây dựng đường kết nối (để làm cho nó chủ yếu là gần với sơ đồ mạch được thiết kế tốt, hãy nói) và làm thế nào tôi có thể thực hiện các mối nối sơ đồ?