2012-04-24 28 views
7

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ó.

enter image description here

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.

enter image description here

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.

enter image description here

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:

  1. xác định bắt đầucuối điểm

  2. tìm một con đường giữa bắt đầucuố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 '

  3. 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

  4. 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:

enter image description here

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ơ đồ?

Trả lời

1

Thứ nhất, tại thời điểm này tôi không thể cung cấp cho toàn bộ các giải pháp, nhưng có lẽ nó sẽ giúp:

  • séc graphflow dự án, xem canvas javascript của nó được xây dựng đồ thị và gắn nó dựa trên các kết nối như tôi nhìn thấy. Đó là chính xác những gì cần thiết cho các mạch (dấu hiệu GND fe sẽ là đỉnh với chỉ một kết nối, do đó sẽ được vẽ tại vùng biên của lược đồ).
  • về "đường dẫn kết nối", nó chỉ là một phần tử nữa và phải được căn chỉnh như các phần tử khác. Nó giống như bóng bán dẫn, nhưng quá nhỏ để xem tất cả ba đầu nối
Các vấn đề liên quan